フィルターのクリア

conditional array extraction based on control array

2 ビュー (過去 30 日間)
Ivan
Ivan 2013 年 1 月 24 日
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'.
  1 件のコメント
Cedric
Cedric 2013 年 1 月 24 日
Ok, so you can achieve that with intersect, as mentioned by Eric, below.

サインインしてコメントする。


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

カテゴリ

Help Center および File ExchangeMultidimensional Arrays についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by