Effacer les filtres
Effacer les filtres

Ismember for rows or something else

1 vue (au cours des 30 derniers jours)
Rostislav Teryaev
Rostislav Teryaev le 2 Juil 2018
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]

Réponse acceptée

Jan
Jan le 2 Juil 2018
Modifié(e) : Jan le 2 Juil 2018
Simply swap the inputs:
[found, index] = ismember(a, b, 'rows')
result = find(found)
  2 commentaires
Rostislav Teryaev
Rostislav Teryaev le 2 Juil 2018
Exactly! Thank you
Rostislav Teryaev
Rostislav Teryaev le 2 Juil 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))
:)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by