最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Simulink.sdi.CustomSnapshot クラス

パッケージ: Simulink.sdi

シミュレーション データ インスペクターを開かずにまたは影響を与えずに、スナップショットの設定を指定する

説明

Simulink.sdi.CustomSnapshot オブジェクトを使用して、シミュレーション データ インスペクターを開かずにまたは開いているセッションに影響を与えずに、作成するスナップショットの設定を指定します。Simulink.sdi.CustomSnapshot オブジェクトを使用したスナップショットの作成は、完全にスクリプトが作成されたワークフローの最適なオプションです。スナップショット次元 (ピクセル単位)、サブプロット レイアウト、および x 軸と y 軸の範囲を指定できます。clearSignals メソッドと plotOnSubplot メソッドを使用して、スナップショットに含める信号をプロットできます。スナップショットを取得するには、Simulink.sdi.CustomSnapshot オブジェクトを関数 Simulink.sdi.snapshotsettings 名前と値のペアの値として渡すか、snapshot メソッドを使用できます。

作成

snap = Simulink.sdi.CustomSnapshotSimulink.sdi.CustomSnapshot オブジェクトを作成します。

プロパティ

すべて展開する

イメージ幅 (ピクセル単位)

例: 750

イメージ高 (ピクセル単位)

例: 500

サブプロット行の数。1 以上 8 以下のスカラーとして指定します。Rows および Columns を使用して、目的のサブプロット レイアウトを設定します。

例: 2

サブプロット列の数。1 以上 8 以下のスカラーとして指定します。Rows および Columns を使用して、目的のサブプロット レイアウトを設定します。

例: 3

スナップショットの時間軸の範囲。時間軸の範囲はすべてのサブプロットで同じです。既定では、時間軸は、プロットされた信号の最大時間範囲が収まるように調整されます。

例: [0 20]

カスタム スナップショット内のすべてのサブプロットに対して y 軸の範囲を指定する 1 行 2 列の行列の cell 配列。既定では、スナップショット操作によってプロットされたデータに合うように y 軸が自動的にスケーリングされます。

例: {[-10 10],[0 100]}

メソッド

clearSignals Simulink.sdi.CustomSnapshot オブジェクトのサブプロットでプロットされた信号をクリアする
plotOnSubPlot Simulink.sdi.CustomSnapshot オブジェクトのサブプロットで信号をプロットする
snapshot カスタム スナップショットを作成する

コピーのセマンティクス

ハンドル。ハンドル クラスがコピー操作にどのように影響するかについては、オブジェクトのコピー (MATLAB)を参照してください。

すべて折りたたむ

この例では、ある実行から別の実行に表示設定をコピーする方法と、Simulink.sdi.CustomSnapshot オブジェクトを使用して Figure を作成する方法を示します。

モデルのシミュレーションと実行オブジェクトの取得

出力データを保存するように vdp モデルを設定し、シミュレーションを実行してデータを作成します。

load_system('vdp')
set_param('vdp','SaveFormat','Dataset','SaveOutput','on')
set_param('vdp/Mu','Gain','1');
sim('vdp');

シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、実行データにアクセスします。

runIndex = Simulink.sdi.getRunCount;
runID = Simulink.sdi.getRunIDByIndex(runIndex);
vdpRun = Simulink.sdi.getRun(runID);

信号表示設定の変更

Simulink.sdi.Run オブジェクトを使用して実行内の信号にアクセスします。次に、信号の表示設定を変更します。この例では、各信号のラインの色とスタイルを指定します。実行の表示設定は、各信号の表示設定とプロット領域に対して指定された表示設定で構成されています。

sig1 = vdpRun.getSignalByIndex(1);
sig2 = vdpRun.getSignalByIndex(2);

sig1.LineColor = [0 0 1];
sig1.LineDashed = '-.';

sig2.LineColor = [1 0 0];
sig2.LineDashed = ':';

シミュレーション データ インスペクターからのスナップショットをキャプチャ

Simulink.sdi.CustomSnapshot オブジェクトを作成し、関数 Simulink.sdi.snapshot を使用してシミュレーション データ インスペクターのコンテンツのスナップショットをプログラムによりキャプチャします。

snap = Simulink.sdi.CustomSnapshot;

Simulink.sdi.CustomSnapshot オブジェクトのプロパティを使用して、サブプロット レイアウトや軸の範囲といったプロット設定を構成したり、信号をプロットしたりすることができます。Simulink.sdi.CustomSnapshot オブジェクトを使用して Figure を作成するときに、これらのプロット設定はシミュレーション データ インスペクターに影響しません。

snap.Rows = 2;
snap.YRange = {[-2.25 2.25],[-3 3]};
snap.plotOnSubPlot(1,1,sig1,true)
snap.plotOnSubPlot(2,1,sig2,true)

Simulink.sdi.snapshot を使用して、Simulink.sdi.CustomSnapshot オブジェクトのプロパティで指定した Figure を生成します。

fig = Simulink.sdi.snapshot("from","custom","to","figure","settings",snap);

表示設定を新しいシミュレーション実行にコピー

別の Mu 値でモデルを再度シミュレートします。シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、シミュレーション データにアクセスします。

set_param('vdp/Mu','Gain','5')
sim('vdp');

runIndex2 = Simulink.sdi.getRunCount;
runID2 = Simulink.sdi.getRunIDByIndex(runIndex2);
run2 = Simulink.sdi.getRun(runID2);

前の手順で作成したような新たな出力データのプロットを作成するには、Simulink.sdi.copyRunViewSettings を使用して、表示設定を 1 行のコードで実行にコピーできます。関数 Simulink.sdi.copyRunViewSettingsSimulink.sdi.CustomSnapshot オブジェクトのプロット設定を自動的に更新しないため、plot 入力を false として指定します。

sigIDs = Simulink.sdi.copyRunViewSettings(runID,runID2,false);

新しいシミュレーション実行のスナップショットをキャプチャ

Simulink.sdi.CustomSnapshot オブジェクトを使用して新しいシミュレーション実行のスナップショットをキャプチャします。最初に、サブプロットから信号をクリアします。次に、新しい実行から信号をプロットし、別のスナップショットをキャプチャします。

snap.clearSignals
snap.YRange = {[-2.25 2.25],[-8 8]};
snap.plotOnSubPlot(1,1,sigIDs(1),true)
snap.plotOnSubPlot(2,1,sigIDs(2),true)

fig = snap.snapshot("to","figure");

R2018a で導入