Simulink ブロックから 関数内のローカル変数として MAT-ファイルからロードされた変数にアクセスできますか?
16 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2015 年 9 月 2 日
回答済み: MathWorks Support Team
2015 年 9 月 2 日
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 により使用されています。
採用された回答
MathWorks Support Team
2015 年 9 月 2 日
Constant Block のようなブロックは、ベースワークスペースの変数から値を読み込みます。今回のように、ある関数によりロードされた変数は、その関数のローカル変数となるため、このようなブロックからは認識されません。
回避策として、evalin コマンドにより MAT-ファイル内の変数をベースワークスペースにロードして使用する方法があります。
function startfun
evalin('base','load mymatfile.mat');
sim('mymodel');
end
0 件のコメント
その他の回答 (0 件)
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!