2016-10-25 2 views
2

MATLABでは、組み込み関数にplot = 5のような変数値を割り当てることができます。それ以来、関数plot()は利用できません。変数xの場合、plot(x)はコンパイルエラーを返します。関数を取り戻すには、plotの変数をclear plotで削除するだけです。値を割り当ててもクリアコマンドを取り戻すには(MATLAB)?

clearは、通常、組み込み関数を取得するために使用されるコマンドです。

私の質問は、関数clearに値(スカラーまたは行列)を割り当てると、関数clearをどうやって返すのでしょうか?

clear clearは明らかに機能しません。 MATLABを閉じて再起動する以外に、関数を戻す方法は考えられませんでした。

答えて

7

すでに言及したように、clearのようなMATLAB関数をシャドーするのは非常に悪い習慣ですが、この場合はbuiltinを使用することができます。 明らかあなたclear変数:あなたは、HTTPS([ `exist`]に言及する場合があります

builtin clear clear 
+1

ありがとうございます。これは役に立ちます。私は友人が 'max 'が値を割り当てられたコードをデバッグするのを手伝っていました。彼は私に上記の質問をしてくれました。 – nahomyaja

1

いいえ、clearは、変数を消去、削除する機能です。 clearあなたの関数を "シャドーイング"していた変数の場合、その関数を再び見つけることができます。 clear関数を「シャドー」すると、何も消去されなくなります。

これは、理由はシャドウイングの問題で、名前のものplotclearsurfconvまたはその他のMATLAB関数に非常に悪い習慣で、あなたは明確に理由を発見しました。

MATLABで変数をシャドーしないでください!


@Jucobsはコメントに非常に良いヒントを与えます。 existを使用してください。

+1

:のみclearclear使用することを

>> clear = 1 >> whos Name Size Bytes Class Attributes clear 1x1 8 double >> builtin clear >> whos >> 

://uk.mathworks.com/help/matlab/ref/exist.html)。 – Jubobs

+1

私はそれが悪い習慣であることを知っています。私は友人にコードの誤りを説明していた。そして、彼は 'clear'に値が代入されるとどうなるか私に尋ねました。 – nahomyaja

関連する問題