「注釈」という名前の変数と組み込みのMATLAB関数「注釈」との間にMATLABの名前の衝突があるようです。MATLABの名前の衝突:「間違った引数の数」
私の関数では、変数注釈を含む.matファイルを読み込み、別の関数の引数として使用しようとしています。最小の使用例は次のようになります。
function test()
filenames = { 'file1.mat', 'file2.mat', 'file3.mat' };
for i = 1:numel(filenames)
in_file = char(filenames{i});
out_file = strrep(in_file, '.mat', '_out.mat');
prepare(out_file); % do something with the out file
load(out_file); % contains one variable named "annotation"
which annotation % just to be sure
other_function(annotation);
end
end
function prepare(filename)
annotation = rand(25, 1);
save(filename);
end
function other_function(annotation)
whos % just a stub - see whether it has been called
end
私の関数prepareで、ファイルに "annotation"という名前の変数が含まれていることを確認しました。私は、主な機能のループの中でそれをロードすると、「これ」コマンドは、それが変数として存在するが、other_functionの呼び出しで、MATLAB関数「注釈」呼び出そうと私に語った:
注釈が可変であるが。
??? 71
ない14
other_function(annotation);
私は変数名「注釈」を使用していますので、私は混乱していますで==>テストで十分な入力引数
エラーで==>注釈を使用してエラー私のプログラムのいくつかの部分では、関数呼び出しのパラメータとしても使用できます。私が想像できる唯一の説明は、MATLABが私のコードをどうにかプリコンパイルするということです。 "コンパイル時"に変数 "注釈"は表示されません。しかし、実行時には、 "which"コマンドの出力からわかるように、
ご協力いただければ幸いです!事前に多くの感謝。
注:MATLAB 7.12.0(R2011a)を使用しています。
、私はあなたの変数annotation.Wellの名前を変更しているだろうすべては、私が注釈を見ることができませんあなたのコードで変数として宣言されています。私がMatlabを理解しているので、スクリプト言語なので、尋ねることなくすべてを上書きします。あなたはデバッガを使ってthrouhgに行き、 "which"の注釈の中に何が入っているのか見てみることができますか? –
デバッガは注釈が変数であると言い、デバッガに 'annotation'と入力するとエラーなしで評価します。 – Richante