How to clear workspace from a function?
이전 댓글 표시
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
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
2023년 1월 17일
채택된 답변
추가 답변 (2개)
Hiro Yoshino
2023년 1월 16일
1 개 추천
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
2023년 1월 17일
댓글 수: 2
Bora Eryilmaz
2023년 1월 17일
편집: Bora Eryilmaz
2023년 1월 17일
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
2023년 1월 17일
카테고리
도움말 센터 및 File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!