2012-09-13 18 views
7

関数clearvarsには、hereという命令があります。MATLABでのclearvarsの使用

ので

a, b, c, d 
、私は変数のセットを持っていると言うと、私はこれを行うことができるはず Dを除き、これらの変数をクリアしたい:

clearvars * -except d 

を私が得ます次のエラー:

clearvars * -except d 
       | 
Error: Unexpected MATLAB expression. 

この理由は何ですか?

+0

@PeterMortensen、あなたの編集は、このようなスマートなお尻のコメントがあります。私はそれを愛しています... –

答えて

7

これは動作します。それは、自身の上にあるときclearvars '*' -except d

MATLABは、文字列に*を変換する問題を持っている必要があります。 a**aの両方で問題なく、*ではありません。

また、これは動作します:

clearvars('*', '-except', 'd') 
5

*の文字は必要ありません。

+0

しかし、ページの例ではこれを示しています:clearvars a * -except -regexp a $は実用的なシステムの例です。 –

+1

その場合、 '*'は 'a'で始まる変数にマッチするワイルドカードとして機能します。 'aa = 1;のようないくつかの変数を作ってみてください。 ab = 2; ac = 3'とし、 'clearvars a * -except ab'のようなものを使って動作を確認してください。 – AGS

+1

私はそれがどのように動作するのか理解していますが、通常、星はすべてを示しています。私はその星自体がなぜ機能しないのか、それはちょうどMATLABクールークだと思う。 –

関連する問題