関数 MATLAB ファイルで SIM 関数を実行するとエラーが発生するのはなぜですか?
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
le 25 Oct 2013
Modifié(e) : MathWorks Support Team
le 2 Fév 2017
ブロックパラメータを変数で指定しているモデルについて、関数 MATLAB ファイルを作成して SIM 関数でシミュレーションした場合に下記のようなエラーが発生します。原因と回避方法を教えて下さい。
??? エラー ==> (関数名) at (行番号)
複数の原因によるエラー.
原因:
エラー ==>(関数名) at (行番号)
'model/From Workspace' 内のパラメータ 'VariableName' の評価のエラー: 関数または変数 '***(変数名)' が未定義です。
Réponse acceptée
MathWorks Support Team
le 2 Fév 2017
Modifié(e) : MathWorks Support Team
le 2 Fév 2017
SIM 関数は、デフォルト設定において、ベースワークスペースから変数を読み込み、SIM 関数を呼び出した関数のワークスペースへ変数を出力します。スクリプト MATLAB ファイルで実行した場合は、変数の読み込み・書き込み共にベースワークスペースで行われますが、関数 MATLAB ファイルで実行した場合ベースワークスペースから変数を読み込んで呼び出した関数のワークスペースへ変数を出力するため、ベースワークスペースに読み込み用変数がない場合にエラーが発生します。
回避方法として、関数 MATLAB ファイルにて、下記の1,2のいずれかの方法を行うことで、エラーを回避できます。
1. SIM 関数を実行する時に変数を読み込むワークスペースを、SIM 関数を実行するワークスペースへ変更する
myobj = sim('model','SrcWorkspace','current');
simout = myobj.get('simout'); % To Workpace ブロックで配列 simout を出力している場合
% R2009a 以前のリリースの場合
sim('model',[],simset('SrcWorkspace','current'));
2. 読み込む変数をベースワークスペースで定義する
evalin('base',['x','=[0:10;0:10]'';']); % 変数をベースワークスペースで定義
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur 速度の向上 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!