Append nested cells in a loop

2 visualizaciones (últimos 30 días)
Daniel
Daniel el 8 de Jul. de 2020
Respondida: Daniel el 8 de Jul. de 2020
I am trying to store nested cells in a loop, but can't figure it out. I'm pretty sure this is almost trivial, but it's escaping me. See code below for further explanation.
for i = 1:length(ccp)
for j = 1:length(cct)
if isempty(tsrx{i,j})==0 % tsrx has many empty cells and I'm trying to collect the non-empty
% ones here. Since I'm only proceeding with non-empty ones, I'm losing the j counter.
% What I'd like is, for each i, a cell like this:
% {{first non-empty j},{second non-empty j}{third non-empty j}...}, so each tsrbetapairs{i}
% has nested cells for each valid result of the if loop
tsrbetapairs{i} = {tsrx{i,j};betax{i,j};i;j};
end
end
end
I've a tried a few things, but none worked. I either get a bunch of empty cells or for each tsrbetapairs{i} I only get that last non-empty j.
  2 comentarios
KSSV
KSSV el 8 de Jul. de 2020
You want the indices which are empty ?
Daniel
Daniel el 8 de Jul. de 2020
No. I want the non-empty ones. I want this result, for example:
tsrbetapairs{1} = {{[tsrx{1,1};betax{1,1};1;1]},{[tsrx{1,3};betax{1,3};1;3]}}
where tsrx{1,2} was empty and so it was skipped. This could be different for every i.

Iniciar sesión para comentar.

Respuesta aceptada

Daniel
Daniel el 8 de Jul. de 2020
Figured it out. This works, though I'm open to other suggestions.
count = 1;
for i = 1:length(ccp)
for j = 1:length(cct)
if isempty(tsrx{i,j})==0
tsrbetapairs{i}{count} = [tsrx{i,j};betax{i,j};i;j];
count = count+1;
end
end
count = 1;
end

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by