Учитывая,Удаление элементов из массива в Matlab
a = [2 4 6 8 10 0 7 18 9 0 8 2 0 5];
b = [1 3 0 5 70 8 6 87 1 9 7 8 0 2];
Я пытаюсь удалить элементы (как в «а» & «Ъ»), что соответствует к «0» или меньше «0» в любом из 'а' или 'б', то есть, я хочу
% a = [2 4 8 10 7 18 9 8 2 5];
% b = [1 3 5 70 6 87 1 7 8 2];
Я пытаюсь, как это -
n = length(b);
a1 = [];
b1 = [];
for k = 1:n
if a(n) <= 0 || b(n) <= 0
a1 = [a; a(a > 0)] % eliminates 0 from a
b1 = [b; b(b > 0)] % eliminates 0 from b
end
end
Любая помощь будет б Очень полезно.
Спасибо за быстрый ответ, но А = (найти (а> 0)); дает все ненулевые элементы в 'a' (это также может быть выполнено a (a> 0)) & B = a (find (b> 0)); дает элементы в том числе «0». –
см. Edit;) – thewaywewalk
Я бы не рекомендовал решение с 'find'. В последних версиях это неэффективное решение даже генерирует предупреждение mlint. –