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

 Risposta accettata

Adam
Adam il 23 Giu 2017
Modificato: Adam il 23 Giu 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 Commento

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

Accedi per commentare.

Più risposte (1)

KSSV
KSSV il 23 Giu 2017
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 Commento

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

Accedi per commentare.

Tag

Richiesto:

il 23 Giu 2017

Commentato:

il 23 Giu 2017

Community Treasure Hunt

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

Start Hunting!

Translated by