- mysim関数において、Aはmysimの関数ワークスペースに定義されます。
- mysubsim関数を呼び出してsimを実行しますが、その際に親となる関数mysimのワークスペースで定義したAを参照したいのでsimの引数'SrcWorkspace'の値を'parent'とします。
sim関数のMATLAB 式を評価するワークスペースについて
6 次查看(过去 30 天)
显示 更早的评论
采纳的回答
stozaki
2020-9-9
编辑:stozaki
2020-9-9
KO様
sim が記述される関数が呼び出される”親となる関数”のワークスペースが、"parent" となります。
シンプルな具体例としては次のような形となります。(AはSimulinkモデルで使用されていて、ベースワークスペースで定義されていないパラメータとします)
% 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
0 个评论
更多回答(1 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!