Simulink ブロックから 関数内のローカル変数として MAT-ファイルからロードされた変数にアクセスできますか?
16 views (last 30 days)
Show older comments
MathWorks Support Team
on 2 Sep 2015
Answered: MathWorks Support Team
on 2 Sep 2015
MAT-ファイルから変数をロードし、その変数を使用して Simulink モデルをスタートさせる MATLAB 関数があります。例えば、以下のような関数です。
function startfun
load 'mymatfile.mat'
sim('mymodel');
end
このモデルは Constant Block を含んでいて、これらのブロックは MAT-ファイルからロードされた変数を値として使用します。しかし、実行すると以下のようなエラーとなります。
ERROR: ??? Error using ==> startfun at 4 Error evaluating parameter 'Value' in 'mymodel/Constant': Undefined function or variable 'myvar'.
myvar はMAT-ファイルに保存されていた変数で、これが Constant Block により使用されています。
Accepted Answer
MathWorks Support Team
on 2 Sep 2015
Constant Block のようなブロックは、ベースワークスペースの変数から値を読み込みます。今回のように、ある関数によりロードされた変数は、その関数のローカル変数となるため、このようなブロックからは認識されません。
回避策として、evalin コマンドにより MAT-ファイル内の変数をベースワークスペースにロードして使用する方法があります。
function startfun
evalin('base','load mymatfile.mat');
sim('mymodel');
end
0 Comments
More Answers (0)
See Also
Categories
Find more on モデルの入力と出力の準備 in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!