find index conditional on two vectors

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

 Accepted Answer

Adam
Adam on 23 Jun 2017
Edited: Adam on 23 Jun 2017
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 Comment

oh my, so simple...I was trying find(resp(resp==1&fing==1)) which delivered indices of the subset. Many thanks

Sign in to comment.

More Answers (1)

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 Comment

?? That is not answering my question at all. Where are you making use of "fing" in your example..?

Sign in to comment.

Tags

Asked:

on 23 Jun 2017

Commented:

on 23 Jun 2017

Community Treasure Hunt

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

Start Hunting!