find index conditional on two vectors

1 回表示 (過去 30 日間)
MiauMiau
MiauMiau 2017 年 6 月 23 日
コメント済み: MiauMiau 2017 年 6 月 23 日
Hi,
I have two vectors =
resp = [1 2 3 1 1 2 3 3 3 1];
fing = [1 2 1 2 1 1 1 2 2 1];
How do I find the indices of resp where resp ==1 and fing ==1 (for instance in this example, this would be index 1 of resp, index 5 of resp, and index 10 of resp)?
Many thanks

採用された回答

Adam
Adam 2017 年 6 月 23 日
編集済み: Adam 2017 年 6 月 23 日
find( resp == 1 & fing == 1 );
If you don't need the actual linear indices though then the logical vector returned by just
resp == 1 & fing == 1
will work as an index into other arrays if needed and is more efficient than finding the linear indices first.
  1 件のコメント
MiauMiau
MiauMiau 2017 年 6 月 23 日
oh my, so simple...I was trying find(resp(resp==1&fing==1)) which delivered indices of the subset. Many thanks

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

その他の回答 (1 件)

KSSV
KSSV 2017 年 6 月 23 日
clc; clear all ;
resp = [1 2 3 1 1 2 3 3 3 1];
fing = [1 2 1 2 1 1 1 2 2 1];
idx1 = find(resp==1)
idx2 = find(resp==2)
  1 件のコメント
MiauMiau
MiauMiau 2017 年 6 月 23 日
?? That is not answering my question at all. Where are you making use of "fing" in your example..?

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

カテゴリ

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