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

8 次查看(过去 30 天)
KO
KO 2020-9-9
回答: KO 2020-9-9
sim関数の入力引数で入力出来る'SrcWorkspace' — MATLAB 式を評価するワークスペースについて、'base'と'current'の使用方法はわかったのですが、’parent’の使用方法がわかりません。’parent’はどこのワークスペースを使するのでしょうか。

采纳的回答

stozaki
stozaki 2020-9-9
编辑:stozaki 2020-9-9
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

更多回答(1 个)

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

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

产品


版本

R2017b

Community Treasure Hunt

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

Start Hunting!