Azzera filtri
Azzera filtri

Does "clear" command clears the global variables

19 visualizzazioni (ultimi 30 giorni)
Does clear command clears all the variables in the workspace including global variables. In my code, there are lots of global variables. On running the code multiple times it seems that previous global variables are not getting cleared.
I'm using below command at the start of the Code
clear;

Risposta accettata

Adam
Adam il 27 Giu 2017
Modificato: Adam il 27 Giu 2017
doc clear
gives a very clear description of the various arguments to clear and what gets cleared by each instruction.
Simply typing
clear
'removes all variables from the current workspace, releasing them from system memory.' to quote that documentation verbatim.
So as ever with global variables it is a murky mess depending whether they are in your workspace or not. If not then they won't be cleared.
Moral of the story is to simply not use globals and to read the documentation!!
  5 Commenti
Guillaume
Guillaume il 27 Giu 2017
Modificato: Guillaume il 27 Giu 2017
If I do not use global variables then I'll have to pass too many arguments in the function call
No. No and No!. That is a bullshit argument, sorry. There are many ways of designing functions to avoid this problem. Starting by refactoring the function so that it does not need so many arguments and if impossible, passing structures, or using classes.
To make logic clear and simple, I have used some global variables.
You may think that it makes logic clear and simple. I'd say it makes debugging impossible since you never know who sets the value of the global variables. It certainly does not make logic clear and simple since it makes it impossible to follow the flow of your program. (where was that value set? Oh! I've got to look into every single function to check it hasn't changed the value of that global).
Global variables are universally despised in any programming language for a reason. They're poor programming practices that went out of fashion last century. Some modern languages do not even allow them.
What about the command "clear global"
Have you read the doc as Adam told you? It's all answered there.
John D'Errico
John D'Errico il 27 Giu 2017
Wish I could also +1 on the comments made by Adam and Guillaume.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Programming 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!

Translated by