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

6 vues (au cours des 30 derniers jours)
Deepa Maheshvare le 20 Jan 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 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Deepa Maheshvare le 20 Jan 2022
idx = arrayfun( @(x)( find(nodes==x) ), subnodes )
works as expected, but I am not sure why the one posted above doesn't works

Connectez-vous pour commenter.

### Réponse acceptée

Rik le 20 Jan 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 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Deepa Maheshvare le 20 Jan 2022
Modifié(e) : Deepa Maheshvare le 20 Jan 2022
Ahh, thanks. I had tried [sharedvals,idxs] = find(ismember(A, B)).

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Structures dans Help Center et File Exchange

R2021a

### Community Treasure Hunt

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

Start Hunting!

Translated by