Программный способ сделать это:
new_matrix = old_matrix(missing_vector==1,:)
для сохранение строк с отсутствующим вектором 1
new_matrix = old_matrix(missing_vector==0,:)
для удаление строк с отсутствующим вектором 1
Для образовательных ценностей, если вы хотите, чтобы цикл работал, не делайте это строка за строкой. Ваше решение приводит к тому, что матрица копируется и перераспределяется в каждой удаленной строке.
Итак, вам будет лучше, если вы заранее рассчитаете размер полученной матрицы:
new_matrix = zeros(sum(missing_vector), 5)
и тогда ваша итерация сработает:
index_new=1
for index_old = 1:size(old_matrix,1)
if missing_vector(index_old) ==0
new_matrix(index_new,:) = old_matrix(index_old,:);
end
end