compare 2 matrix with different dimensions

Hi, assume that I have a matrix 'info' (800,3), the first column is for ID, the second column is for coordinate x and the last column is for coordinate y. Additionally I have a matrix called 'coordinates'(200,2) where the first column is coordinate x and the second is coordinate y. I want to compare this matrix with the 'info' matrix to find the IDs where the matrix 'coordinates' is equal to the 'info' matrix.
Thanks

 Risposta accettata

[tf, idx] = ismember( info(:,2:3), coordinates, 'rows');
match_IDs = info(tf, 1);

Più risposte (1)

Azzi Abdelmalek
Azzi Abdelmalek il 10 Giu 2013
Modificato: Azzi Abdelmalek il 10 Giu 2013
A=[1 10 20;2 100 200;3 1000 2000;4 44 55]
B=[11 20;100 200;1 4;44 55 ]
out=A(~any(A(:,2:3)-B,2),1)

5 Commenti

Hi, when I use this I get an error
??? Error using ==> minus Matrix dimensions must agree.
I hope you can help me
I am wondering does this only output IDs that had matching 'x' values? I am asking as I am interested in how the 'any' function works. Does it only work down one vector?
Ok, it does not work, look at Walter's answer
sorry, my matrix was wrong, I fixed it and it works, thanks
any() by default works along the first dimension (so down columns), but it accepts an optional dimension number. dimension #2 means across rows.

Accedi per commentare.

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by