Error in using try catch

1 view (last 30 days)
farzad
farzad on 20 Jun 2019
Edited: Adam Danz on 20 Jun 2019
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 ?

Accepted Answer

Adam Danz
Adam Danz on 20 Jun 2019
Edited: Adam Danz on 20 Jun 2019
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

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!