If statement in cell arrays

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?

 Respuesta aceptada

Walter Roberson
Walter Roberson el 17 de Sept. de 2015

0 votos

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 comentario

Bas
Bas el 17 de Sept. de 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).

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Etiquetas

Preguntada:

Bas
el 17 de Sept. de 2015

Comentada:

Bas
el 17 de Sept. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by