Filter löschen
Filter löschen

Comparing matrices with different dimensions

2 Ansichten (letzte 30 Tage)
Mahi Nazir
Mahi Nazir am 27 Sep. 2013
Beantwortet: dpb am 27 Sep. 2013
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!

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

dpb
dpb am 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
>>

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by