find a value & store in new variable

5 Ansichten (letzte 30 Tage)
Ubu
Ubu am 7 Mär. 2012
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!

Akzeptierte Antwort

TAB
TAB am 7 Mär. 2012
new_variable = A{2}(find(ismember(A{1,1},[2])))

Weitere Antworten (2)

Jan
Jan am 7 Mär. 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 Kommentar
Ubu
Ubu am 19 Mär. 2012
Hi Jan,
maybe you want to have a look at this, indeed.
Cheers,
Udiubu

Melden Sie sich an, um zu kommentieren.


Ubu
Ubu am 7 Mär. 2012
Both work!
Thanks TAB, Thanks Jan.

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by