我有两个矩阵
R = 10,000x2 Q = 10,000x2
我必须找出q的那些行是一个值或两个值(因为它是一个两列矩阵)不同于r并在另一个矩阵中分配它们,现在我正在尝试这个。我不能使用isequal因为我想知道那些行 不相等的这段代码给了我个别元素而不是完整的行不同 任何人都可以帮忙吗
if r(:,:)~=q(:,:)
IN= find(registeredPts(:,:)~=q(:,:))
end
答案 0 :(得分:1)
您可以使用ismember
执行此操作。这是你想要的吗?您可以在此处获得q
中与r
不同的行中的值。
q=[1,2;3,4;5,6]
r=[1,2;3,5;5,6]
x = q(sum(ismember(q,r),2) < 2,:)
x =
3 4
这是做什么的:
ismember
创建一个数组,其中q == r
位置为1,其余位置为0。 sum(.., 2)
获取每个行的列总和。如果总和小于2,则该行包含在新数组中。
如果值因浮点运算而有所不同,请查看ismemberf
from the file exchange.我自己没有测试过,但它看起来不错。