Simulink ブロックから 関数内のローカル変数として MAT-ファイルからロードされた変数にアクセスできますか?
16 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 2 Sep. 2015
Beantwortet: MathWorks Support Team
am 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 により使用されています。
Akzeptierte Antwort
MathWorks Support Team
am 2 Sep. 2015
Constant Block のようなブロックは、ベースワークスペースの変数から値を読み込みます。今回のように、ある関数によりロードされた変数は、その関数のローカル変数となるため、このようなブロックからは認識されません。
回避策として、evalin コマンドにより MAT-ファイル内の変数をベースワークスペースにロードして使用する方法があります。
function startfun
evalin('base','load mymatfile.mat');
sim('mymodel');
end
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu モデルの入力と出力の準備 finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!