find index conditional on two vectors

1 visualización (últimos 30 días)
MiauMiau
MiauMiau el 23 de Jun. de 2017
Comentada: MiauMiau el 23 de Jun. de 2017
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

Respuesta aceptada

Adam
Adam el 23 de Jun. de 2017
Editada: Adam el 23 de Jun. de 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 comentario
MiauMiau
MiauMiau el 23 de Jun. de 2017
oh my, so simple...I was trying find(resp(resp==1&fing==1)) which delivered indices of the subset. Many thanks

Iniciar sesión para comentar.

Más respuestas (1)

KSSV
KSSV el 23 de Jun. de 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 comentario
MiauMiau
MiauMiau el 23 de Jun. de 2017
?? That is not answering my question at all. Where are you making use of "fing" in your example..?

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by