MATLAB: Error in using try catch

errorfor looploops

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 ?

Best Answer

  • 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