Finding the indices of the elements of one array in another

8 ビュー (過去 30 日間)
Deepa Maheshvare
Deepa Maheshvare 2022 年 1 月 20 日
編集済み: Deepa Maheshvare 2022 年 1 月 20 日
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 件のコメント
Deepa Maheshvare
Deepa Maheshvare 2022 年 1 月 20 日
idx = arrayfun( @(x)( find(nodes==x) ), subnodes )
works as expected, but I am not sure why the one posted above doesn't works

サインインしてコメントする。

採用された回答

Rik
Rik 2022 年 1 月 20 日
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 件のコメント
Deepa Maheshvare
Deepa Maheshvare 2022 年 1 月 20 日
編集済み: Deepa Maheshvare 2022 年 1 月 20 日
Ahh, thanks. I had tried [sharedvals,idxs] = find(ismember(A, B)).

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeStructures についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by