2013-03-30 3 views
0

Я делаю проект по оптимизации частиц Рома, кодируя в Matlab. Мне нужно заменить строки матрицы A на некоторые строки из матрицы B и удалить эти строки из матрицы B. Как я могу это сделать?сдвиг строк среди матриц matlab

ответ

0

Помещенный вы грести индексы в векторах, скажем

indexA=[0 0 0 1 0 1 1 0]. 
indexB=[0 1 0 1 0 1]. 

Partition B в

A(indexA,:) = B(indexB,:); 
B(indexB,:) = []; 
+1

Вам не нужно '' B1' или B2' буферы кстати. Вы можете сделать A (indexA, :) = B (indexB, :); B (indexB, :) = [] '; – Justin

+0

@jucestain хорошо пункт. –

+4

Я также не думаю, что использование логического индексирования здесь является лучшим. Я бы, вероятно, использовал 'indexA = [4 6 7]' и 'indexB = [2 4 6]', чтобы было ясно, что они имеют одинаковую длину. Но это только я. – Justin

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