Hi All
I have a loop to be forced to continue , and I get an error after the first cycle , since in the beginning of each try I put
clear all and, close all
cause I need to remove the data from the previous run, but this also removes the counter j in the loop. if I don't do that the previous data will interfer with the next
how do I do that ?

 Respuesta aceptada

Adam Danz
Adam Danz el 20 de Jun. de 2019
Editada: Adam Danz el 20 de Jun. de 2019

2 votos

In general you should avoid using clear all (see link and image below). You're throwing the baby out with the bathwater.
If you need to remove data within a loop, you can either reset the variables with preallocation (see method 1), empty the variables (see method 2 below) or clear a list of variables in a controlled manner (see method 3).
% 1) reset the variables with preallocation
% Recommended method
for i = 1:n
myMat = nan(1,n); % a vector of NaNs
myCell = cell(1,n);
...
end
% 2) empty the variables.
for i = 1:n
myMat = [];
myCell = {};
myStruc = struct();
...
end
% 3) clear a hard coded list of variables
vars2clear = {'myMat','myCell','myStruc'};
for i = 1:n
clear(vars2clear{:})
...
end

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 20 de Jun. de 2019

Editada:

el 20 de Jun. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by