Access the array index using find

1 回表示 (過去 30 日間)
Pankaja Tanjore
Pankaja Tanjore 2015 年 7 月 2 日
コメント済み: Titus Edelhofer 2015 年 7 月 2 日
Hello ,
I have an array A1 = [1 12 23 45]; and
second array A1_1 = [45 23];
I need to find the index of 45 and 23 in first array A1. I am using following function to do this find(a==a_1(1)) --Output =4 find(a==a_1(2)) --Output =3 I want to get this for multiple elements of array .
It would be grateful if you let me know the changes that are to be done to get it for multiple elements in an array.
Looking forward to hear from you at the earliest.
Thanks Pankaja

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2015 年 7 月 2 日
編集済み: Azzi Abdelmalek 2015 年 7 月 2 日
a= [1 12 23 45];
b= [45 23]
out=arrayfun(@(x) find(a==x),b,'un',0)
Or using a for loop. The previous answer, also uses a loop.
for k=1:numel(b)
out{k}=find(a==b(k));
end

その他の回答 (1 件)

Titus Edelhofer
Titus Edelhofer 2015 年 7 月 2 日
Hi,
I guess you are looking for this:
A1 = [1 12 23 45];
A1_1 = [45 23];
[~,idx] = ismember(A1_1, A1)
idx =
4 3
Titus
  2 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2015 年 7 月 2 日
What if A1 = [1 12 45 23 45]?
Titus Edelhofer
Titus Edelhofer 2015 年 7 月 2 日
Yes, you are right. In this case you would find only the first of the two 45 ...

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

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by