How to clear workspace from a function?
Show older comments
Hi,
I want to create a function that will perform some maintenance operations at the beginning of the script. For example, this function takes a few arguments that will lead to specific initialisations of paths and variables, and above all, clear the workspace from the previous run.
I want to put it in a specific function as the job requires dozens of lines which are quite irrelevant in the work. And I want my "main' script to be as short, readible and high-level as possible.
Below only the first lines of the function.
function init_step(varargin)
clearvars -except varargin
close all
clc
However if I do 2 consecutive runs, it does not clear the workspace. If I want to, I need to explicitely write the "clear" command in the main script, which I try to avoid.
Is there any way to do it?
Thanks in advance.
2 Comments
The simple solution would be to make the "specific function" a script, then when you run it, it will clear the worksapce of your main script. But.... using scripts and needing to clear workspaces is a strong indication that you should to refactor your code:
Louis Tomczyk
on 17 Jan 2023
Accepted Answer
More Answers (2)
Hiro Yoshino
on 16 Jan 2023
1 vote
One way you can delete variables from the Function Workspace is that you make your variables "global" so you can have access from anywhere.
Louis Tomczyk
on 17 Jan 2023
2 Comments
Bora Eryilmaz
on 17 Jan 2023
Edited: Bora Eryilmaz
on 17 Jan 2023
You cannot clear the variables in the main function by calling clear inside another function (init_step).
You can probably describe why you are trying to do something like this as this is a highly unusual thing to try to do. Then someone can probably offer a better workflow/solution. For example, you can make init_step return the initial values of the variables that you are trying to clear. Something like this:
[a, b, c] = init_step(...)
Louis Tomczyk
on 17 Jan 2023
Categories
Find more on Startup and Shutdown 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!