Main Content

setPostSimFcn

各シミュレーションの完了後に実行する MATLAB 関数を設定

説明

simIn = setPostSimFcn(simIn,func) は、Simulink.SimulationInput オブジェクト simIn に対して、関数ハンドル func に関連付けられたポスト シミュレーション関数を構成します。この関数には Simulink.SimulationInput オブジェクトが引数として渡されます。func は任意の MATLAB® 関数であり、出力で後処理を行うために使用できます。後処理したデータを返すには、構造体の値として返さなければなりません。これらの値は Simulink.SimulationOutput 出力に挿入され、通常のログ データと置き換わるか、新しいデータを Simulink.SimulationOutput オブジェクトに追加します。

すべて折りたたむ

この例では、Simulink.SimulationInput オブジェクトを使用してシミュレーションに対するポスト シミュレーション関数を指定します。

ログに記録された出力の平均を計算する PostSimFcn を作成します。

function newout = postsim(out);
newout.mean = mean(out.yout);
end

モデル vdpSimulationInput オブジェクトを作成します。

simIn = Simulink.SimulationInput('vdp');
simIn = setPostSimFcn(simIn,@(x) postsim(x));
simIn = setModelParameter(simIn,'SaveOutput','on');

モデルをシミュレートします。

out = sim(simIn);

ポスト シミュレーション関数の結果を表示します。

out.mean

ErrorMessage および SimulationMetadata を関数のフィールド名として使用しないことをお勧めします。

入力引数

すべて折りたたむ

シミュレーション入力とコンフィギュレーション。Simulink.SimulationInput オブジェクトとして指定します。

各シミュレーションの完了後に実行する関数。関数ハンドルまたは関数名として指定します。y 引数の形状で Simulink.SimulationInput オブジェクトが渡されます。次に例を示します。

in = in.setPreSimFcn(@myfunc, y)
ここで、myfunc は MATLAB 関数です。
function f = myfunc(x)
f ...%Compute function value with x as an input argument
無名関数の関数ハンドルも関数として指定できます。
in = in.setPostSimFcn(@(y) myfunction(arg1, arg2 ...))

出力引数

すべて折りたたむ

ポスト シミュレーション関数が追加されたシミュレーションのコンフィギュレーション。Simulink.SimulationInput オブジェクトとして返されます。

バージョン履歴

R2017a で導入