Filter löschen
Filter löschen

Append nested cells in a loop

2 Ansichten (letzte 30 Tage)
Daniel
Daniel am 8 Jul. 2020
Beantwortet: Daniel am 8 Jul. 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 Kommentare
KSSV
KSSV am 8 Jul. 2020
You want the indices which are empty ?
Daniel
Daniel am 8 Jul. 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Daniel
Daniel am 8 Jul. 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

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Produkte


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by