このサンプル関数を次のように保存しますtest_func.m
。
function test_func
load test.mat
whos
alpha
次のサンプルスクリプトを実行します。
alpha = 3;
save test.mat
test_func
これが私が得る出力です:
Name Size Bytes Class Attributes
alpha 1x1 8 double
??? Error using ==> alpha at 40
Not enough input arguments.
Error in ==> test_func at 4
alpha
の出力はwhos
、変数が関数のローカルワークスペースにロードされていることを示しています。の4行目にブレークポイントを設定してtest_func
入力することもできalpha
ますが、正しい結果が得られますが、デバッガーでステップを進めるとすぐに失敗します。関数alpha
がローカル変数をマスクしているため、理由がわかりません。 。
のコンテンツtest_func
を
p = load('test.mat');
p.alpha
正常に動作しますが、それは私がやろうとしていることではありません。関数のローカルワークスペース内に直接変数をロードしたいと思います。
私にはバグのように見えますが(私はMatlab R2011aを使用しています)、それが機能である場合、それを説明し、回避策を見つけるのに役立ちますか?