find a value & store in new variable

2 vues (au cours des 30 derniers jours)
Ubu
Ubu le 7 Mar 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!

Réponse acceptée

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

Plus de réponses (2)

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

Connectez-vous pour commenter.


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

Catégories

En savoir plus sur Programming dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by