Let\'s say you are some new programmer and you do something like...
%...la da da
%...programming away
if such && such
clear = 1;
else
clear
This will do it:
builtin('clear','clear')
Note: Keep in mind to avoid such operations to keep code clarity. Only do overwrite when it is the exact action you want to take place. Otherwise it may cause future bugs if you forgot (or if another person uses your code and didn't realize it) that you have the clear (or any other) function overwritten. You could easily name this variable as doClear
for example.
Interesting problem! I found it surprisingly hard to find an ways to do this programatically (besides the one suggested by @TryHard)
Here is the I have come up with though it is a bit more powerfull than clear
:
!matlab &
exit
Note that if you want to type this in the command line at once, you need to use a shift+enter in between.
Any name, even builtin
and feval
can be overriden. In such case, you can use function handles instead to force MALTAB into interpreting a statement as a function call:
clear = str2func('clear');
clear('clear')
Obviously, str2func
can also be overrriden! :) however, there exists a similar solution (inspired by Loren's article), which is creating a separate m-file that does the same thing:
function clearclear()
assignin('caller', 'clear', @clear);
Calling this function in the main workspace should allow you to do clear('clear')
safely.
The second solution takes advantage of the fact that the m-file doesn't "see" the variable clear
in the main workspace, and therefore can access the actual handle of the clear
function properly.
A non intuitive way is
clear = rand(1000,500,700);
pack
This produces the following warning:
Warning: Variable 'clear' cannot be saved to a MAT-file whose version is older than 7.3. To save this variable, use the -v7.3 switch. Skipping...
It also suffers from the same issue that you can assign pack
to be a variable.