Azzera filtri
Azzera filtri

row wise output for find(ismember(Values, searchValues,'rows'))

1 visualizzazione (ultimi 30 giorni)
I have two matrices say foo and bah as follows:
>> foo =
2 19
5 68
17 19
65 37
73 62
65 78
45 9
55 93
30 77
74 49
>> bah
bah =
5 68
65 78
65 78
55 93
55 93
55 93
55 93
To get the indices, I am doing:
>> find(ismember(foo,bah,'rows'))
ans =
2
6
8
I want the answer as:
2
6
6
8
8
8
8
corresponding to each row of the bah matrix. How do I get such an output?? I tried using bsxfun/arrayfun/isequal/intersect?! Unique will just make it more difficult to map it back!
Please help! I really want to avoid a for loop here to go through each row and want a smarter way to do it!
Thanks! :)
Alpa.

Risposta accettata

Image Analyst
Image Analyst il 17 Feb 2015
Alpa:
Try using all return arguments of ismember():
[~, rows] = ismember(bah, foo,'rows')
  1 Commento
Sad Grad Student
Sad Grad Student il 17 Feb 2015
Yes! That's exactly what I was looking for! I knew it had to be something this silly! Thank you very much :)

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Sparse Matrices 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