2017-08-13 78 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