conditional array extraction based on control array

2 vues (au cours des 30 derniers jours)
Ivan
Ivan le 24 Jan 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.

Réponse acceptée

Cedric
Cedric le 24 Jan 2013
Modifié(e) : Cedric le 24 Jan 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?

Plus de réponses (2)

Ivan
Ivan le 24 Jan 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 commentaire
Cedric
Cedric le 24 Jan 2013
Ok, so you can achieve that with intersect, as mentioned by Eric, below.

Connectez-vous pour commenter.


Eric Sampson
Eric Sampson le 24 Jan 2013
If I understand your question correctly, try this:
z=y(intersect(x,c));

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by