mファイルを実行するときに、Matlab R2015aのワークスペースで定義された変数で組み込み関数をオーバーライドする方法を知りたいと思います。Matlab:ワークスペース内の変数で組み込み関数をオーバーライドする方法
私が意味する、私が定義した場合:
function test
fun1
clear input
load test
plot(input)
return
function fun1
input=1:10;
save('test.mat','input')
return
を、私はテストを実行し、その後、私が手:
Error using input
Not enough input arguments.
Error in test (line 8)
plot(input)
MATLABは、その内蔵機能として、入力を取っています。
これを解決する方法を知っていますか(変数名を変更せずに)?
ありがとうございました。
あなたは組み込み関数を上書きすることはありません。 (この種のエラーを回避するには) – obchardon
しかし、変数または新しい.mファイルを作成して、組み込み関数の名前とまったく同じ名前にすると、この組み込み関数は上書きされます。 – obchardon
@obchardon私は同意しません。例えば、カスタムクラス( 'plus()'など)のために演算子をオーバーロードする場合など、あなたが何をしているのか分かっているなら、絶対に問題はありません。 MATLABは、必要に応じて元のバージョンを呼び出すために、[builtin'](https://www.mathworks.com/help/matlab/ref/builtin.html)関数( "_Inecute組み込み関数fromオーバーロードされたメソッド_")を提供します。 || cardogar - 'load'を使って変数を生み出すことは悪い習慣です。はるかに良いアプローチは 'A = load(...)です。 var = A.someName'であり、mlintと人間の両方をあまり混乱させることはありません。 –