Borrar filtros
Borrar filtros

Ismember for rows or something else

1 visualización (últimos 30 días)
Rostislav Teryaev
Rostislav Teryaev el 2 de Jul. de 2018
Comentada: Rostislav Teryaev el 2 de Jul. de 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]

Respuesta aceptada

Jan
Jan el 2 de Jul. de 2018
Editada: Jan el 2 de Jul. de 2018
Simply swap the inputs:
[found, index] = ismember(a, b, 'rows')
result = find(found)
  2 comentarios
Rostislav Teryaev
Rostislav Teryaev el 2 de Jul. de 2018
Exactly! Thank you
Rostislav Teryaev
Rostislav Teryaev el 2 de Jul. de 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))
:)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by