Clearing workspace variables while in a loop.
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I have a while loop that contains a menu and some options for the user to input. One of them is to delete the workspace variables. However, whenever I clear the workspace it doesn't actually clear until the while loop stops (this occurs when they exit the program).
% case 3
% Clear data from memory
clearvars -except continueprogram %
% This clears the entire workspace, while allowing the
% program to continue running.
%
clc;
fprintf('The memory is cleared. Press a key to continue. \n')
pause;
3 Commenti
Stephen23
il 5 Dic 2016
Clearing variables in a loop seems like an inefficient way to write code. Either the variables are re-allocated in each iteration (in which case clearing them serves no purpose) or new variables are created on each iteration (in which case the code is going to be buggy and slow no matter what).
Clearing variables is slow. Code of this complexity should be written as a function (and not a script), in which case it is totally irrelevant to the end user what variables exist in the function workspace.
Risposte (1)
Walter Roberson
il 4 Dic 2016
How can you tell that the workspace is not actually cleared?
If you are using the Workspace Browser then you need to know that (at least in recent versions) the Workspace Browser is not updated until you stop in the debugger or use keyboard() or control returns to the command line.
Vedere anche
Categorie
Scopri di più su Workspace Variables and MAT-Files in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!