sim関数のMATLAB 式を評価するワークスペースについて

12 views (last 30 days)
KO
KO on 9 Sep 2020
Answered: KO on 9 Sep 2020
sim関数の入力引数で入力出来る'SrcWorkspace' — MATLAB 式を評価するワークスペースについて、'base'と'current'の使用方法はわかったのですが、’parent’の使用方法がわかりません。’parent’はどこのワークスペースを使するのでしょうか。

Accepted Answer

stozaki
stozaki on 9 Sep 2020
Edited: stozaki on 9 Sep 2020
KO様
sim が記述される関数が呼び出される”親となる関数”のワークスペースが、"parent" となります。
シンプルな具体例としては次のような形となります。(AはSimulinkモデルで使用されていて、ベースワークスペースで定義されていないパラメータとします)
  1. mysim関数において、Aはmysimの関数ワークスペースに定義されます。
  2. mysubsim関数を呼び出してsimを実行しますが、その際に親となる関数mysimのワークスペースで定義したAを参照したいのでsimの引数'SrcWorkspace'の値を'parent'とします。
% main function
function mysim
A = 1;
mysubsim; % サブ関数呼び出し
end
% sub function
function mysubsim
sim(bdroot(gcs),'SrcWorkspace','parent'); % シミュレーション実行
%%% テスト用
ret = evalin('caller','A');
disp(ret); % Aの値がコマンドウィンドウに出力されます
%%% テスト用(END)
end
この際、'parent'を使わないで'current'を使うと、mysubsim関数の関数ワークスペースしか参照できないので、エラーとなります。
上記お試しください。
stozaki

More Answers (1)

KO
KO on 9 Sep 2020
stozaki様
ご回答ありがとうございます。
例題もわかりやすく、勉強になりました。
ありがとうございます。

Products


Release

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!