I have a program that reads in a really large Excel file and creates some large variables. This runs out of storage if I try to run it multiple times in a row, which makes sense, i.e.:
large_program; large_program
will crash. However, what I don't understand is why
large_program; clear all; large_program
will also crash; in order to run it multiple times, I have to restart MATLAB each time. Does MATLAB not actually clear all variables? Or is this a fragmentation of memory thing?
Workspace variables do not persist after you exit MATLAB. To use your data across multiple sessions, save it to a compressed file with a . mat extension called a MAT-file. You can restore saved data by loading a MAT-file back into MATLAB.
clear FUNCTIONS removes all compiled MATLAB and MEX-functions. clear ALL removes all variables, globals, functions and MEX links.
Using CLEAR ALL usually decreases code performance and is often unnecessary - MATLAB Answers - MATLAB Central.
A persistent variable is a local variable in a MATLAB® function that retains its value in memory between calls to the function. If you generate code from your model, you must initialize a persistent variable for your MATLAB functions. For more information, see persistent .
Matlab can indeed hold onto some variables and other settings "under the hood". I have the following set up as a short-cut to purge it back to a "just switched on" state (the one that can really catch you out is that clear functions is not a subset of clear all).
restoredefaultpath;
clc;
clear all;
close all;
clear functions;
bdclose('all');
fclose('all');
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With