Comment supprimer la variable "clear" dans MATLAB
disons que vous êtes le nouveau programmeur et que vous faites quelque chose comme...
%...la da da
%...programming away
if such && such
clear = 1;
else
clear = 0;
end
ou d'une autre manière, vous affectez à la variable clear
une valeur.
Est-il possible de "clair" clear
?
clearvars
ne fonctionne pas. Cliquer sur la variable workspace et cliquer manuellement sur delete fonctionne, mais je pense que c'est de la triche.
4 réponses
Cela fera:
builtin('clear','clear')
Remarque: gardez à l'esprit d'éviter de telles opérations pour garder la clarté du code. Ne réécrivez que lorsque c'est l'action exacte que vous voulez effectuer. Sinon, il peut causer des bugs futurs si vous avez oublié (ou si une autre personne utilise votre code et ne l'a pas réalisé) que vous avez la fonction clair (ou toute autre) écrasée. Vous pouvez facilement nommer cette variable comme doClear
par exemple.
n'Importe quel nom, même builtin
et feval
peut être remplacé. Dans de tels cas, vous pouvez utiliser poignées de fonction au lieu de forcer MALTAB à interpréter un énoncé comme une fonction Appel:
clear = str2func('clear');
clear('clear')
de toute Évidence, str2func
peuvent aussi être dépassés! :) cependant, il existe une solution similaire (inspiré par article de Loren), qui crée un fichier M séparé qui fait la même chose:
function clearclear()
assignin('caller', 'clear', @clear);
appeler cette fonction dans l'espace de travail principal devrait vous permettre de faire clear('clear')
en toute sécurité.
la seconde solution tire avantage du fait que le m-file ne "voit" pas la variable clear
dans l'espace de travail principal, et donc peut accéder à la poignée réelle du clear
fonctionner correctement.
non intuitive, est
clear = rand(1000,500,700);
pack
Ce qui produit l'avertissement suivant:
Il souffre également du même problème que vous pouvez attribuer pack
être une variable.
problème Intéressant! J'ai trouvé étonnamment difficile de trouver un moyen de faire cela de façon programmatique (en plus de celui suggéré par @TryHard)
voici ce que j'ai inventé bien qu'il soit un peu plus puissant que clear
:
!matlab &
exit
Notez que si vous voulez entrer dans la ligne de commande à la fois, vous devez utiliser une maj+entrée entre les deux.