If statement in cell arrays

3 visualizzazioni (ultimi 30 giorni)
Bas
Bas il 17 Set 2015
Commentato: Bas il 17 Set 2015
Hi,
I have a matrix A of 1x24 cells. Each cell contains c x 1 values, with c being variable. So A{1} is 2360x1, while A{2} is 2340x1 etc. The values in A define ages of people.
I have a matrix B 45x2, B(:,1) are ages, B(:,2) are corresponding values to the specific age on the same row.
Now I want to check for each value in A, what is the corresponding value from B(:,2). So what I want as output is C with 1x24 cells, with all corresponding values to the specific ages in A.
Can anyone help me with this?

Risposta accettata

Walter Roberson
Walter Roberson il 17 Set 2015
for K = 1 : length(A)
[tf, idx] = ismember(A{K}, B(:,1));
t = nan(length(A{K},1);
t(tf) = B(idx(tf),2);
C{K} = t;
end
You did not specify what to do for ages that did not match anything.
  1 Commento
Bas
Bas il 17 Set 2015
Thanks, if the age in A is lower than min(B(:,1)) it should be B(1,2) and if the age in A is higher than max(B(:,1)) it should be B(end,2).

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Operators and Elementary Operations in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by