overwrite cell array in a loop
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
summyia qamar
le 31 Juil 2018
Commenté : summyia qamar
le 31 Juil 2018
the code is given below; parts(day) are calculated using some data which is let say comes out as 3 4 2 for day 1 2 3. complete code is attached in file.. when the value of parts(day) decreses from previous loop, the cell cannot reassign the new value but overwrite on previous and causes extra cell which creates error in reshaping.
for day=1:3
n = 2;
Psub{parts(day}=[];
for ii=1:(parts(day)*2)/n
Psub{ii}=process_plan((ii-1)*n+1:ii*n,:);
end
P=reshape((cell2mat(Psub)),parts(day)*2,machines);
2 commentaires
Bob Thompson
le 31 Juil 2018
Modifié(e) : Bob Thompson
le 31 Juil 2018
I'm a little confused by what you're problem is and would like some more context. Would you mind including more of your code (the whole loop if possible)?
Réponse acceptée
Stephen23
le 31 Juil 2018
Modifié(e) : Stephen23
le 31 Juil 2018
clear the cell array before you implicitly create it with that allocation:
clear P
P{4}=[];
...
clear P
P{2}=[]
...
Note that this is not an efficient solution. A much better solution would be to explicitly create the cell array of the right size each time, e.g.:
P = cell(1,4);
...
P = cell(1,2);
...
I recommend that you explicitly create the cell array.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!