# Finding the indices of the elements of one array in another

9 visualizaciones (últimos 30 días)
Deepa Maheshvare el 20 de En. de 2022
Editada: Deepa Maheshvare el 20 de En. de 2022
Given two vectors A and B,
I want to find the index of elements of B in A
I tried
A = ["G1", "V2", "G3", "G4", "V1"]
B = ["V1", "G4"];
[sharedvals,idxs] = intersect(A, B, 'stable')
The above returns
idxs =
4
5
Expected result:
idxs =
5
4
Could someone suggest how to obtain the expected result?
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Deepa Maheshvare el 20 de En. de 2022
idx = arrayfun( @(x)( find(nodes==x) ), subnodes )
works as expected, but I am not sure why the one posted above doesn't works

Iniciar sesión para comentar.

Rik el 20 de En. de 2022
You muct have thought of this already (as it is one of your tags), but ismember does what you need:
A = ["G1", "V2", "G3", "G4", "V1"];
B = ["V1", "G4"];
[sharedvals,idxs] = ismember(B,A)
sharedvals = 1×2 logical array
1 1
idxs = 1×2
5 4
If you want a column vector you can transpose it.
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Deepa Maheshvare el 20 de En. de 2022
Editada: Deepa Maheshvare el 20 de En. de 2022
Ahh, thanks. I had tried [sharedvals,idxs] = find(ismember(A, B)).

Iniciar sesión para comentar.

### Categorías

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

R2021a

### Community Treasure Hunt

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

Start Hunting!

Translated by