2014-01-22 301 views
0

之后分配的不同的行到另一个矩阵我有两个矩阵比较两个矩阵

R = 10,000x2 Q = 10,000x2

我必须找出哪些是一个值或两个Q的那些行值(因为它是一个两列矩阵)不同然后r并将它们分配到另一个矩阵中,现在我正在尝试this.i不能使用isequal因为我想知道那些不相等的行 这段代码给了我个别元素不是完整的行不同 任何人都可以帮忙请

if r(:,:)~=q(:,:) 
     IN= find(registeredPts(:,:)~=q(:,:)) 
end 
+0

你能给出一个小例子的例子吗? – bgamlath

+0

e = [1,2; 3,4; 5,6],f = [1,2; 3,5; 5,6]现在我想存储第2行,这两个矩阵在另一个矩阵中是不同的 – Jav

+0

Do你想存储两行(因为它们是不同的)? –

回答

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和0在其余的位置与1点的数组。 sum(.., 2)取这些行中的每一行的列总和。如果总和小于2,则该行将包含在新数组中。

更新

如果数值可能会有所不同有的是由于浮点运算,检查出ismemberf from the file exchange.我没有测试它自己,但它看起来不错。