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.