Comparing matrices with different dimensions

3 ビュー (過去 30 日間)
Mahi Nazir
Mahi Nazir 2013 年 9 月 27 日
回答済み: dpb 2013 年 9 月 27 日
I have a matrix [row, col, vector] with a large number of entries for row, col and vector.
I have another matrix [x, y] with few entries.
I want to derive a matrix [xr, yc, zv] for all the values for which (x==row and y==col) and zv should be the corresponding value of 'vector' for which (x=row and y=col)
e.g:
[row col vector]= 2 2 4;
3 2 6;
7 1 8;
5 2 3;
8 1 7;
[x y]= 3 2;
8 1
then, [xr yc zv] should equal = 3 2 6;
8 1 7
Your help will be greatly appreciated. Thanks!

採用された回答

Image Analyst
Image Analyst 2013 年 9 月 27 日
Use ismember() with the rows option:
m= [2 2 4;
3 2 6;
7 1 8;
5 2 3;
8 1 7]
m2= [3 2;
8 1
7 3]
matches = ismember(m(:,1:2), m2, 'rows')
out = m(matches,:)
  1 件のコメント
Mahi Nazir
Mahi Nazir 2013 年 9 月 27 日
Brilliant! Thank you very much for a quick and appropriate response

サインインしてコメントする。

その他の回答 (1 件)

dpb
dpb 2013 年 9 月 27 日
Since your values are in the first two columns, it's fairly easily written...
>> res=a(ismember(a(:,1:2),v,'rows'),:)
res =
3 2 6
8 1 7
>>

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by