Does "clear" command clears the global variables
21 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Atinesh Singh
el 27 de Jun. de 2017
Comentada: John D'Errico
el 27 de Jun. de 2017
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;
0 comentarios
Respuesta aceptada
Adam
el 27 de Jun. de 2017
Editada: Adam
el 27 de Jun. de 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 comentarios
Guillaume
el 27 de Jun. de 2017
Editada: Guillaume
el 27 de Jun. de 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"
John D'Errico
el 27 de Jun. de 2017
Wish I could also +1 on the comments made by Adam and Guillaume.
Más respuestas (0)
Ver también
Categorías
Más información sobre Whos en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!