Simulink ブロックから 関数内のローカル変数として MAT-ファイルから​ロードされた変数にア​クセスできますか?

16 visualizzazioni (ultimi 30 giorni)
MathWorks Support Team
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
MathWorks Support Team il 2 Set 2015
Constant Block のようなブロックは、ベースワークスペースの変数から値を読み込みます。今回のように、ある関数によりロードされた変数は、その関数のローカル変数となるため、このようなブロックからは認識されません。
回避策として、evalin コマンドにより MAT-ファイル内の変数をベースワークスペースにロードして使用する方法があります。
 
function startfun
evalin('base','load mymatfile.mat');
sim('mymodel');
end
 

Più risposte (0)

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!