2017-08-13 153 views
0

我有2个矩阵(D:76572x2和E:1850092x7),并且想要更大的矩阵(E)中的行的值,如果前两列等于较小的矩阵(D)。匹配2个不同大小的矩阵(matlab)

例子:

D = [1000 19751231; 
    1000 19761231] 

E = [1234 19701130 4 5 2 9 3; 
    1000 19751231 2 3 2 5 2] 

因此,在这种情况下,我只希望该行:[1000 19751231 2 3 2 5 2]从矩阵E.我怎样才能较快地计算这对于大型矩阵,而无需使用任何/很多(换)循环?

感谢

+0

两列如何可以等于当他们不同的l engths?从你的问题'D'有76572行,'E'有1850092. – jodag

+1

我更新了问题,它应该是列中的值而不是整列。 – Marius

+0

“等于较小矩阵(D)中列的值”您的意思是“等于”较小矩阵(D)中的任意一行“? – jodag

回答

1

我们可以利用这里

rows_E = ismember(E(:,1:2),D,'rows'); 

ismember功能从你的例子:

>> E(rows_E,:) 

息率

ans = 
    1000 19751231 2 3 2 5 2 
+0

作品!多么好的解决方案! – Marius