conditional array extraction based on control array

2 次查看(过去 30 天)
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.

采纳的回答

Cedric
Cedric 2013-1-24
编辑:Cedric 2013-1-24
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?

更多回答(2 个)

Ivan
Ivan 2013-1-24
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'.

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

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by