あなたが新しいプログラマーで、次のようなことをするとしましょう...
%...la da da
%...programming away
if such && such
clear = 1;
else
clear = 0;
end
または他の方法で、変数clear
に値を割り当てます。
「クリア」する方法はありclear
ますか?
clearvars
動作しません。ワークスペース変数をクリックして手動で削除をクリックしても機能しますが、不正行為だと思います。
これはそれを行います:
builtin('clear','clear')
注:コードを明確に保つために、このような操作は避けるようにしてください。実行したい正確なアクションである場合にのみ、上書きしてください。そうしないと、clear (またはその他の) 関数が上書きされていることを忘れた場合 (または他の人がコードを使用していて気付かなかった場合) に、将来のバグが発生する可能性があります。doClear
たとえば、この変数に簡単に名前を付けることができます。
任意の名前、さらにbuiltin
はfeval
上書きできます。このような場合、代わりに関数ハンドルを使用して、MALTAB にステートメントを関数呼び出しとして解釈させることができます。
clear = str2func('clear');
clear('clear')
もちろん、str2func
オーバーライドも可能です!:) ただし、同じことを行う別の m-file を作成する同様のソリューション ( Loren の記事に触発された) が存在します。
function clearclear()
assignin('caller', 'clear', @clear);
clear('clear')
メインワークスペースでこの関数を呼び出すと、安全に実行できるはずです。
2 番目の解決策は、m ファイルがメイン ワークスペース内の変数を「認識」しないという事実を利用しているclear
ため、関数の実際のハンドルにclear
適切にアクセスできます。
面白い問題!プログラムでこれを行う方法を見つけるのは驚くほど難しいことがわかりました(@TryHardによって提案されたもの以外に)
よりも少し強力ですが、私が思いついたのは次のclear
とおりです。
!matlab &
exit
これをコマンド ラインで一度に入力する場合は、間に Shift+Enter を使用する必要があることに注意してください。