MATLAB Answers

find a value & store in new variable

8 views (last 30 days)
Ubu on 7 Mar 2012
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.
would of course just give us the row coordinates of column 1.
Any suggestion?
Thank you very much!

Accepted Answer

TAB on 7 Mar 2012
new_variable = A{2}(find(ismember(A{1,1},[2])))

More Answers (2)

Jan on 7 Mar 2012
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 Comment
Ubu on 19 Mar 2012
Hi Jan,
maybe you want to have a look at this, indeed.

Sign in to comment.

Ubu on 7 Mar 2012
Both work!
Thanks TAB, Thanks Jan.

Community Treasure Hunt

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

Start Hunting!