find a value & store in new variable

Hi,
Standard question:
We have a cell array A cell with integer and decimal numeric values:
A = {[1;2;29;2],[3;4;0.3;3]}
(this is just an example, of course)
We would like to find all occurrences of [2] in column 1, and save corresponded value in column 2 in a new variable "new_variable". In this case "new_variable" would contain [4] and [3], and we could make statistics on this new variable alone, without bothering about the rest.
find(ismember(A{1,1},[2]))
would of course just give us the row coordinates of column 1.
Any suggestion?
Thank you very much!

 採用された回答

TAB
TAB 2012 年 3 月 7 日

0 投票

new_variable = A{2}(find(ismember(A{1,1},[2])))

その他の回答 (2 件)

Jan
Jan 2012 年 3 月 7 日

1 投票

It might be easier to use a matrix instead of a cell. But it works with your data representation also:
index = A{1} == 2;
new_variable = A{2}(index);
Or in one line:
new_variable = A{2}(A{1} == 2);
find and ismember are not needed here.

1 件のコメント

Ubu
Ubu 2012 年 3 月 19 日
Hi Jan,
maybe you want to have a look at this, indeed.
Cheers,
Udiubu

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

Ubu
Ubu 2012 年 3 月 7 日

0 投票

Both work!
Thanks TAB, Thanks Jan.

カテゴリ

ヘルプ センター および File ExchangeProgramming についてさらに検索

質問済み:

Ubu
2012 年 3 月 7 日

Community Treasure Hunt

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

Start Hunting!

Translated by