Finding the indices of the elements of one array in another

9 vues (au cours des 30 derniers jours)
Deepa Maheshvare
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 commentaire
Deepa Maheshvare
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
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 commentaire
Deepa Maheshvare
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.

Plus de réponses (0)

Catégories

En savoir plus sur Structures dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by