Simulink ブロックから 関数内のローカル変数として MAT-ファイルからロードされた変数にアクセスできますか?
16 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
MathWorks Support Team
il 2 Set 2015
Risposto: MathWorks Support Team
il 2 Set 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 により使用されています。
Risposta accettata
MathWorks Support Team
il 2 Set 2015
Constant Block のようなブロックは、ベースワークスペースの変数から値を読み込みます。今回のように、ある関数によりロードされた変数は、その関数のローカル変数となるため、このようなブロックからは認識されません。
回避策として、evalin コマンドにより MAT-ファイル内の変数をベースワークスペースにロードして使用する方法があります。
function startfun
evalin('base','load mymatfile.mat');
sim('mymodel');
end
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su モデルの入力と出力の準備 in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!