2013-02-23 3 views
0

У меня есть матрица a < 500 x 500> и матрица b < 500 x 2>. Матрица b содержит два типа значений, которые являются координатами строк и столбцов для матрицы a. Я хотел бы использовать значения в матрице b для копирования всех значений, которые попадают на координаты строки и столбца матрицы a.matlab. копировать значения из одной матрицы на основе значений другой матрицы

пример ниже

matrix a   matrix b output 
1 2 3 4 5  1 5  1 2 3 4 5 
6 7 8 9 10 2 5  7 8 9 10 
11 12 13 14 15 1 3  11 12 13 
+0

Какие значения б должны быть точно? И что вы подразумеваете под «значениями, которые попадают на координаты строки и столбца матрицы a»? В ваших формулировках вы расплывчаты. – 2013-02-23 22:42:19

ответ

2

Поскольку каждая строка будет иметь различную длину, вам нужно, чтобы сохранить значения в массив ячеек.

Что-то, как это должно работать:

output = cell(size(b,1),1); 

for i = 1:size(a,1) 

    output{i} = a(i, b(i,1):b(i,2)) 

end 
+0

Как мне обойтись без nonegegers? Код зависает, когда он работает с неинтеграторами. Кроме того, я не могу изменять данные, чтобы сделать неинтегратор целым. Я должен поддерживать данные как есть, будь то целые или нецелевые. Спасибо. – Buntalan

Смежные вопросы