Comparing matrices with different dimensions

1 view (last 30 days)
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!

Accepted Answer

Image Analyst
Image Analyst on 27 Sep 2013
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 Comment
Mahi Nazir
Mahi Nazir on 27 Sep 2013
Brilliant! Thank you very much for a quick and appropriate response

Sign in to comment.

More Answers (1)

dpb
dpb on 27 Sep 2013
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
>>

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!