根据特定列中的值删除不同列中的值

时间:2014-04-28 16:45:43

标签: matlab dependencies delete-row

我有一个包含3列的双变量。有时,在第二列中,我获得零值。如果它发生,我想完全删除该行。例如:

12346 67 89

1245 0 765

56 0 99

19862 8 675

我想得到什么:

12346 67 89

19862 8 675

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这通常使用logical indexing

完成
A = [12346 67 89
     1245  0  765
     56    0  99
     19862 8  675];

mask = (A(:,2) ~= 0);
ans = A(mask, :)

相同但删除了原始数组中的元素:

mask = (A(:,2) == 0);
A(mask, :) = []

一个非常相似的问题:How can you remove matrix rows in Matlab based on some criteria?