Azzera filtri
Azzera filtri

Ismember for rows or something else

3 visualizzazioni (ultimi 30 giorni)
Hello! I have to matrices a and b:
a = [1 2;
3 4;
5 6;
7 8;
1 2;
9 10]
b = [1 2;
5 6]
Every row in these tables describe one entity (start and target node of graph edge). So, I want to find indices of a where the rows are equal to rows in b. In other words I need to get this:
c = [1, 3, 5]
But when I use
[~, c] = ismember(b, a, 'row')
I get only this:
c = [1, 3]

Risposta accettata

Jan
Jan il 2 Lug 2018
Modificato: Jan il 2 Lug 2018
Simply swap the inputs:
[found, index] = ismember(a, b, 'rows')
result = find(found)
  2 Commenti
Rostislav Teryaev
Rostislav Teryaev il 2 Lug 2018
Exactly! Thank you
Rostislav Teryaev
Rostislav Teryaev il 2 Lug 2018
I managed to do this:
a = [1 2;3 4;5 6;7 8;1 2;9 10]
b = [1 2;5 6]
a1 = permute(a,[1 3 2])
b1 = permute(b,[3 1 2])
find(any(all(a1==b1 , 3), 2))
:)

Accedi per commentare.

Più risposte (0)

Prodotti


Release

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by