find a value & store in new variable

2 次查看(过去 30 天)
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
new_variable = A{2}(find(ismember(A{1,1},[2])))

更多回答(2 个)

Jan
Jan 2012-3-7
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
Both work!
Thanks TAB, Thanks Jan.

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by