Main Content

add

シミュレーション データ インスペクター内の既存の実行に Simulink.sdi.Run オブジェクトを使用してデータをインポート

説明

ワークスペースからのデータのインポート

add(runObj,var) は、指定された Simulink.sdi.Run オブジェクトに対応する実行に 1 つ以上の信号を追加して、シミュレーション データ インスペクターに変数 var のデータをインポートします。

新しい実行にデータをインポートするには、関数 Simulink.sdi.Run.create または関数 Simulink.sdi.createRun を使用します。

add(runObj,'vars',var,var2,...,varn) は、指定された Run オブジェクトに対応する実行に 1 つ以上の信号を追加して、シミュレーション データ インスペクターに 1 つ以上の変数からデータをインポートします。

add(runObj,'namevalue',sourceNames,sigValues) は、指定された Run オブジェクトに対応する実行に 1 つ以上の信号を追加して、シミュレーション データ インスペクターに 1 つ以上の変数からデータをインポートします。sourceNames 引数で、実行に追加された信号のメタデータでデータ ソースに使用する値を指定します。

ファイルからのデータのインポート

add(runObj,'file',filename) は、指定された Run オブジェクトに対応する実行に 1 つ以上の信号を追加して、シミュレーション データ インスペクターにファイルからデータをインポートします。組み込みのファイル リーダーを使用して、MAT ファイル、CSV ファイル、Microsoft® Excel® ファイル、または MDF ファイルからデータをインポートできます。

組み込みリーダーではサポートされないファイルからデータをインポートしなければならない場合は、io.reader クラスを使用して独自のリーダーを書き込むことができます。

add(runObj,'file',filename,Name=Value) は、指定された Run オブジェクトに対応する実行に 1 つ以上の信号を追加して、シミュレーション データ インスペクターにファイルからデータをインポートします。たとえば、sheets=["sheet1" "sheet2"] は、Excel ファイルからデータをインポートするときに、データのインポート元となるシートを指定します。

すべて折りたたむ

この例では、実行を作成してそこにデータを追加してから、シミュレーション データ インスペクターでデータを表示する方法を示します。

実行からデータを作成

timeseries オブジェクトを作成し、正弦信号と余弦信号のデータを含めます。各 timeseries オブジェクトに説明的な名前を付けます。

time = linspace(0,20,100);

sine_vals = sin(2*pi/5*time);
sine_ts = timeseries(sine_vals,time);
sine_ts.Name = 'Sine, T=5';

cos_vals = cos(2*pi/8*time);
cos_ts = timeseries(cos_vals,time);
cos_ts.Name = 'Cosine, T=8';

実行の作成とデータの追加

関数 Simulink.sdi.view を使用して、シミュレーション データ インスペクターを開きます。

Simulink.sdi.view

データをワークスペースからシミュレーション データ インスペクターにインポートするには、関数 Simulink.sdi.Run.create を使用して Simulink.sdi.Run オブジェクトを作成します。Run オブジェクトの Name プロパティと Description プロパティを使用して、実行に関する情報をそのメタデータに追加します。

sinusoidsRun = Simulink.sdi.Run.create;
sinusoidsRun.Name = 'Sinusoids';
sinusoidsRun.Description = 'Sine and cosine signals with different frequencies';

関数 add を使用して、ワークスペースで作成したデータを空の実行に追加します。

add(sinusoidsRun,'vars',sine_ts,cos_ts);

シミュレーション データ インスペクターでのデータのプロット

関数 getSignalByIndex を使用して、信号データが含まれる Simulink.sdi.Signal オブジェクトにアクセスします。Simulink.sdi.Signal オブジェクトのプロパティを使用して、信号のライン スタイルと色を指定し、シミュレーション データ インスペクターにプロットできます。各信号の LineColor プロパティと LineDashed プロパティを指定します。

sine_sig = getSignalByIndex(sinusoidsRun,1);
sine_sig.LineColor = [0 0 1];
sine_sig.LineDashed = '-.';

cos_sig = sinusoidsRun.getSignalByIndex(2);
cos_sig.LineColor = [0 1 0];
cos_sig.LineDashed = '--';

関数 Simulink.sdi.setSubPlotLayout を使用して、シミュレーション データ インスペクターのプロット領域で 21 列のサブプロット レイアウトを設定します。次に、関数 plotOnSubplot を使用して、上のサブプロットに正弦信号をプロットし、下のサブプロットに余弦信号をプロットします。

Simulink.sdi.setSubPlotLayout(2,1);

plotOnSubPlot(sine_sig,1,1,true);
plotOnSubPlot(cos_sig,2,1,true);

シミュレーション データ インスペクターを閉じてデータを保存

プロットされた信号データの検査が完了したら、シミュレーション データ インスペクターを閉じて、セッションを MLDATX ファイルに保存できます。

Simulink.sdi.close('sinusoids.mldatx')

入力引数

すべて折りたたむ

インポート データの追加先の実行。Simulink.sdi.Run オブジェクトとして指定します。

インポートするデータ。変数として指定します。シミュレーション データ インスペクターはサンプル値がサンプル時間に関連付けられている時間ベースのデータをサポートします。シミュレーション データ インスペクターでは、timeseriesSimulink.SimulationData.Dataset を含めたすべての読み込みデータ形式とログ データ形式がサポートされます。

例: myData

インポートしたデータのソース名。文字ベクトルの cell 配列として指定します。ソース名は、sigValues 入力で指定したデータから作成された Simulink.sdi.Signal オブジェクトの RootSourceTimeSource、および DataSource プロパティを設定するために使用されます。

2 番目の引数に対して 'namevalue' を指定する場合は sourceNames 入力を指定します。

例: {'sig1','sig2'}

インポートするデータ。変数の cell 配列として指定します。

2 番目の引数に対して 'namevalue' を指定する場合は sigValues 入力を指定します。

例: {var1,var2}

インポートするデータをもつファイルの名前。文字ベクトルとして指定します。2 番目の引数に対して 'file' を指定する場合は filename 入力を指定します。

シミュレーション データ インスペクターに組み込まれているファイル リーダーを使用して、以下のタイプのファイルから実行を作成できます。

組み込みリーダーではサポートされないファイルからデータをインポートしなければならない場合は、io.reader クラスを使用して独自のリーダーを書き込むことができます。組み込みリーダーの代わりに、任意のファイル拡張子に対して使用するカスタム リーダーを書き込むこともできます。例については、カスタム ファイル リーダーを使用したデータのインポートを参照してください。

例: 'simulation.mat'

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

例: sheets=["sheet1" "sheet2"]

データのインポートに使用するファイル リーダー。string または文字ベクトルとして指定します。

シミュレーション データ インスペクターは、ファイルで使用できる場合は登録されたカスタム リーダーの使用を優先します。リーダーを指定しない場合、シミュレーション データ インスペクターはファイルに対して最初に登録されたカスタム リーダーを使用します。カスタム リーダーが登録されていない場合、データは組み込みリーダーを使用してインポートされます。

次の場合にリーダー入力を指定します。

  • 組み込みリーダーを使用してカスタム リーダーでもサポートされているファイルのデータをインポートする場合。

  • 登録されている複数のカスタム リーダーがファイルをサポートしている場合。

ファイルのインポートに使用できるリーダーを判別するには、関数 io.reader.getSupportedReadersForFile を使用します。

例: "MyExcelReader"

例: "built-in"

データのインポート元となる Excel ファイルのシート。string 配列または文字ベクトルの cell 配列として指定します。シミュレーション データ インスペクターの既定では、すべてのシートからデータがインポートされます。Excel ファイルのすべてのシートからデータをインポートしない場合は、sheets 名前と値の引数を使用します。

ファイルのデータにシミュレーション番号とソース情報が含まれていない場合、各シートのデータが個々の実行にインポートされます。Excel ファイルからインポートするデータの書式設定の詳細については、Microsoft Excel のインポート、エクスポート、ログ形式を参照してください。

例: ["sheet1" "sheet2"]

ユーザー定義のデータ型の定義をもつモデル。string または文字ベクトルとして指定します。

列挙、バス、エイリアスなどのユーザー定義のデータ型を使用して信号のデータ型を定義するデータを Excel ファイルから読み込む場合、シミュレーション データ インスペクターでは、データをインポートするために型定義にアクセスする必要があります。型定義へのアクセスは次のようにして提供できます。

  • 関連付けられているオブジェクトを MATLAB® ワークスペースに読み込みます。

  • 名前と値の引数 model を指定して、モデル ワークスペースまたはデータ ディクショナリに保存されている型定義を使用します。

Excel ファイルからインポートするデータの書式設定の詳細については、Microsoft Excel のインポート、エクスポート、ログ形式を参照してください。

例: "myModel.slx"

バージョン履歴

R2017b で導入