有没有办法可以在MATLAB中删除数据数组中的特定行?什么是最好的调查指令?
答案 0 :(得分:0)
让
a =
1 2 3
4 5 0
7 8 9
10 11 0
然后
a(a(:,end)~=0,:)
返回a
的行,这些行不以0
结尾,因此您可以写
a = a(a(:,end)~=0,:)
我可能还没有看到更简单的方法,但不要担心很快会有Matlab专家。
答案 1 :(得分:0)
您应该查看逻辑索引和[]
。我没有MATLAB,但我认为这应该有效:
A(A(:, end) == 0, :) = [];
A(:, end) == 0
查找最后一列为零的所有行。 []
用于删除这些行。
如果您无法保证这些值完全为零,则不应使用==
,而应使用<
和>
。如果您只有正数和零,则可以使用< tol
,其中tol
是您想要比较的小数字。
您也可以采取其他方式,例如:
A = A(A(:, end) ~= 0, :);