Append nested cells in a loop

1 visualizzazione (ultimi 30 giorni)
Daniel
Daniel il 8 Lug 2020
Risposto: Daniel il 8 Lug 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 Commenti
KSSV
KSSV il 8 Lug 2020
You want the indices which are empty ?
Daniel
Daniel il 8 Lug 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.

Accedi per commentare.

Risposta accettata

Daniel
Daniel il 8 Lug 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

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by