Azzera filtri
Azzera filtri

Comparing matrices with different dimensions

2 visualizzazioni (ultimi 30 giorni)
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!

Risposta accettata

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

Accedi per commentare.

Più risposte (1)

dpb
dpb il 27 Set 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
>>

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by