Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

setPostSimFcn

SimulationInput オブジェクト in を使って、シミュレーションが完了するたびに実行される MATLAB 関数を指定する

説明

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

すべて折りたたむ

この例は、SimulationInput オブジェクトを使用してシミュレーションが完了するたびに MATLAB 関数が実行されるように指定します。

PostSimFcn を作成して、出力の平均を取得します。

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

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

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

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

out = sim(in)

検証結果を表示します。

out.mean

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

入力引数

すべて折りたたむ

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

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

バージョン履歴

R2017a で導入