conditional array extraction based on control array

2 visualizaciones (últimos 30 días)
Ivan
Ivan el 24 de En. de 2013
I have the following problem:
For example, I have three arrays:
x = [1,2,3,4,5,6,7,8,9,10] and its corresponding y values: y = [21,43,77,54,38,24,99,64,77,33] and also a "control" array: c = [3,5,7,9]
Is it possible to somehow extract from 'y' only those entries that have corresponding entries in both 'x' and 'c' array and put them in for example 'z'? In this case z = [77,38,99,77]
Thanks.

Respuesta aceptada

Cedric
Cedric el 24 de En. de 2013
Editada: Cedric el 24 de En. de 2013
For the second part of the question:
z = y(c) ;
What do you mean by "corresponding entries in x "? How do you define correspondence if x and y don't have the same number of elements?

Más respuestas (2)

Ivan
Ivan el 24 de En. de 2013
I mean that only if entry exists in both 'x' and 'c' for instance '3' does, then to copy in this case 77 form 'y' into 'z'.
  1 comentario
Cedric
Cedric el 24 de En. de 2013
Ok, so you can achieve that with intersect, as mentioned by Eric, below.

Iniciar sesión para comentar.


Eric Sampson
Eric Sampson el 24 de En. de 2013
If I understand your question correctly, try this:
z=y(intersect(x,c));

Categorías

Más información sobre Matrices and Arrays 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