我在Matlab A和B中有两个矩阵,它们的列数相等,但行数不同。B中的行数也小于A中的行数。B实际上是A的子集。
在A的第1列和第2列的值等于矩阵B的第1列和第2列的值的情况下,如何有效地从A中删除这些行?
目前,我正在这样做:
for k = 1:size(B, 1)
A(find((A(:,1) == B(k,1) & A(:,2) == B(k,2))), :) = [];
end
Matlab抱怨这是低效的,我应该尝试使用any
,但是我不确定如何使用它any
。有人可以帮我这个忙吗?=)
我试过了,但是不起作用:
A(any(A(:,1) == B(:,1) & A(:,2) == B(:,2), 2), :) = [];
它抱怨以下内容:
Error using ==
Matrix dimensions must agree.
我想要的例子:
结果中的AB表示B的行已从A中删除。AC也是如此。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句