Main Content

Simulink.sdi.createRun

シミュレーション データ インスペクター内の新しい実行にデータをインポートして実行 ID を返す

説明

空の実行の作成

runID = Simulink.sdi.createRun は、シミュレーション データ インスペクター内に名前のない空の実行を作成し、作成された実行の実行 ID を返します。

関数 Simulink.sdi.getRun を使用して実行に対応する Simulink.sdi.Run オブジェクトにアクセスできます。Run オブジェクトでプロパティを設定し、実行にメタデータを追加します。関数 Simulink.sdi.addToRun または関数 add を使用し、実行にデータを追加します。

runID = Simulink.sdi.createRun(runName)runName という名前の空の実行を作成します。

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

runID = Simulink.sdi.createRun(var) は、シミュレーション データ インスペクター内の新しい実行にスカラー変数 var からデータをインポートします。実行は入力変数に従って名前が付けられます。たとえば、vartimeseries オブジェクトの場合、実行名は timeseries オブジェクトの Name プロパティから取得されます。

runID = Simulink.sdi.createRun(runName,"vars",var,var2,...,varn) は、シミュレーション データ インスペクター内の runName という名前の新しい実行に 1 つ以上の変数からデータをインポートします。

この構文を使用して、複数の変数または、オブジェクトの配列 (Simulink.SimulationOutput オブジェクトまたは Simulink.SimulationData.Dataset オブジェクトの配列など) を表す 1 つの変数からデータをインポートします。

runID = Simulink.sdi.createRun(runName,"namevalue",sourceNames,sigValues) は、シミュレーション データ インスペクター内の runName という名前の新しい実行に 1 つ以上の変数からデータをインポートします。cell 配列 sourceNames で、cell 配列 sigValues からインポートされた信号の RootSourceTimeSource、および DataSource の各プロパティの設定に使用する名前を指定します。

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

runID = Simulink.sdi.createRun(runName,"file",filename) は、シミュレーション データ インスペクター内の新しい実行にファイルからデータをインポートします。組み込みのファイル リーダーを使用して、MAT ファイル、CSV ファイル、Microsoft® Excel® ファイル、または MDF ファイルからデータをインポートできます。

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

runID = Simulink.sdi.createRun(runName,"file",filename,Name=Value) は、1 つ以上の名前と値の引数を使用して指定されたオプションに従って、シミュレーション データ インスペクター内の新しい実行にファイルからデータをインポートします。たとえば、sheets=["sheet1" "sheet2"] は、Excel ファイルからデータをインポートするときに、データのインポート元となるシートを指定します。

追加の実行情報を返す

[runID,runIndex] = Simulink.sdi.createRun(___) は、シミュレーション データ インスペクター内の作成された実行に対する実行 ID と実行インデックスを返します。

[runID,runIndex,sigIDs] = Simulink.sdi.createRun(___) は、シミュレーション データ インスペクター内の作成された実行に対する実行 ID と実行インデックス、および実行内の信号の信号 ID を返します。

すべて折りたたむ

ベース ワークスペースまたはファイル内のデータから実行を作成することで、データをプログラムによってシミュレーション データ インスペクターにインポートできます。この例では、データをワークスペースで作成してから、データが含まれるシミュレーション データ インスペクターの実行を作成するいくつかの方法を示します。

データの作成

ワークスペースでデータを作成します。シミュレーション データ インスペクターは timeseries データを多くの形式でサポートします。この例では、timeseries形式とSimulink.SimulationData.Dataset形式を使用してデータを作成し、そのデータを MAT ファイルに保存します。

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

time = 0:0.2:20;

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";

Dataset 形式を使用すると、関連する信号データをまとめて 1 つのオブジェクトにグループ化できます。Dataset 形式はログ データの既定の形式であり、シミュレーションの入力データの読み込みでサポートされています。正弦波 timeseries データを含む Dataset オブジェクトを作成します。

sinusoids_ds = Simulink.SimulationData.Dataset;
sinusoids_ds = addElement(sinusoids_ds,cos_ts);
sinusoids_ds = addElement(sinusoids_ds,sine_ts);

各信号を係数 2 を使用してスケーリングし、Dataset オブジェクトを作成して結果の信号データを含めます。

doubSine = 2*sine_ts;
doubCos = 2*cos_ts;

doubSinusoids_ds = Simulink.SimulationData.Dataset;
doubSinusoids_ds = addElement(doubSinusoids_ds,doubSine);
doubSinusoids_ds = addElement(doubSinusoids_ds,doubCos);

最後に、timeseries データを MAT ファイルに保存します。

save sinusoids.mat sine_ts cos_ts

シミュレーション データ インスペクターを開く

各セクションで作成する実行を表示するには、MATLAB™ コマンド ウィンドウに Simulink.sdi.view を入力してシミュレーション データ インスペクターを開きます。

Simulink.sdi.Run オブジェクトを使用した実行の作成

空の実行を作成し、ワークスペースまたはファイルのデータを実行に追加することで、シミュレーション データ インスペクターでデータを実行にインポートできます。タスクに応じて、関数Simulink.sdi.Run.createまたは関数Simulink.sdi.createRunを使用して空の実行を作成します。関数 Simulink.sdi.Run.create は、新しい実行のSimulink.sdi.Runオブジェクトを返します。関数 Simulink.sdi.createRun は、新しい実行の実行 ID を返します。

この例では関数 Simulink.sdi.Run.create を使用して空の実行を作成し、その実行にわかりやすい名前と説明を指定してから、関数 add を使用して正弦および余弦の timeseries データを追加します。

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

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

この例では関数 Simulink.sdi.createRun を使用してシミュレーション データ インスペクターに My Waves という新しい実行を作成してから、関数 Simulink.sdi.addToRun を使用して正弦および余弦の timeseries データを実行に追加します。

runID = Simulink.sdi.createRun("My Waves");
signalID = Simulink.sdi.addToRun(runID,'vars',sine_ts,cos_ts);

ワークスペース変数からの実行の作成

ワークスペース内の単一の変数から実行を作成できます。実行の作成後、データを追加したり、別の実行を作成してその他のデータを含めたりすることができます。実行を作成するために使用する変数は、1 つの信号のみに対応するデータをもつ timeseries オブジェクトにすることも、複数の信号を含む Dataset オブジェクトにすることもできます。

この構文を使用して単一のワークスペース変数から実行を作成するときに、実行はその実行を作成するために使用されたオブジェクトと同じ名前を取得します。

runID = Simulink.sdi.createRun(sine_ts);

関数 Simulink.sdi.createRun は、関数で作成する実行の実行 ID を返します。関数Simulink.sdi.getRunを使用して、実行の Run オブジェクトにアクセスできます。

sineRun = Simulink.sdi.getRun(runID);
sineRun.Name
ans = 
'Sine, T=5'

複数のワークスペース変数からの実行の作成

データがワークスペースの複数の変数に存在している場合、vars オプションを指定した関数 Simulink.sdi.createRun を使用して複数の変数からシミュレーション データ インスペクターの単一の実行にデータをインポートできます。この構文を使用して、指定した名前を使用する単一の変数の実行を作成することもできます。

この例では、正弦および余弦の timeseries オブジェクトのデータを含む My Sinusoids という実行を作成します。

runID = Simulink.sdi.createRun("My Sinusoids",'vars',sine_ts,cos_ts);

実行の作成とソース名の指定

関数 Simulink.sdi.createRunnamevalue オプションを使用して実行を作成し、実行内の信号の名前を指定できます。この構文は、階層データから個々のリーフ信号をインポートする場合に役立つことがあります。

この例では、両方の Dataset オブジェクトのデータが含まれる実行を作成します。各 Dataset オブジェクトには複数の信号のデータが含まれるため、インポートされた実行データには階層があります。この例で使用される名前と値の構文は、各 Dataset オブジェクトに対応する階層ノードの名前を指定します。

runID = Simulink.sdi.createRun("Waves",'namevalue',{'Sinusoids',...
    'BigSinusoids'},{sinusoids_ds,doubSinusoids_ds});

ファイルのデータからの実行の作成

関数 Simulink.sdi.createRun を使用して、ファイルのデータをシミュレーション データ インスペクターにインポートすることもできます。sinusoids.mat ファイルのデータをインポートするには、file オプションを使用します。

runID = Simulink.sdi.createRun("Wave Data",'file',"sinusoids.mat");

ワークスペースのデータを使用して、シミュレーション データ インスペクターで実行を作成できます。

実行のデータを生成

正弦信号と余弦信号の timeseries データを作成します。各信号に説明的な名前を付けます。

time = linspace(0, 20, 101);

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";

実行を作成して信号 ID を返す

関数 Simulink.sdi.createRun を使用して、正弦波データの実行を作成します。複数の戻り引数を使用して、実行 ID、実行インデックス、信号 ID を直接取得できます。関数 Simulink.sdi.createRun を使用して信号 ID を返さない場合、Simulink.sdi.Run オブジェクトを介して信号 ID にアクセスできます。

[runID,runIndex,sigIDs] = Simulink.sdi.createRun("Sinusoids","vars",...
    sine_ts,cos_ts);

信号プロパティを変更してシミュレーション データ インスペクターで表示

返された sigIDs ベクトルの 2 番目の信号 ID を使用して、余弦波に対応する Simulink.sdi.Signal オブジェクトを取得します。

cosID = sigIDs(2);
cosSig = Simulink.sdi.getSignal(cosID);

Simulink.sdi.Signal オブジェクトの信号プロパティを表示および変更できます。たとえば、cosSigChecked プロパティを true に設定して、シミュレーション データ インスペクターで信号をプロットします。次に、シミュレーション データ インスペクターを開いて信号データを表示します。

cosSig.Checked = true;
Simulink.sdi.view

入力引数

すべて折りたたむ

シミュレーション データ インスペクター内の実行の名前。string または文字ベクトルとして指定します。

例: "Baseline Simulation"

インポートするデータ。変数として指定します。シミュレーション データ インスペクターはサンプル値がサンプル時間に関連付けられている時間ベースのデータをサポートします。シミュレーション データ インスペクターでは、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 入力を指定します。

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

  • MAT ファイル。

  • CSV ファイル。

  • Microsoft Excel のインポート、エクスポート、ログ形式に従った形式で設定されたデータを含む Microsoft Excel ファイル

  • 次のいずれかの拡張子をもつ MDF ファイル:

    • .mdf

    • .mf4

    • .mf3

    • .data

    • .dat

  • ULG ファイル。フライトのログ データのインポートには UAV Toolbox のライセンスが必要です。

  • ROS Bag ファイル Version 1.1 または 2.0。Bag ファイルのインポートには ROS Toolbox のライセンスが必要です。

組み込みリーダーではサポートされないファイルからデータをインポートしなければならない場合は、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"

出力引数

すべて折りたたむ

インポート データを含む実行の実行 ID。整数として返されます。

シミュレーション データ インスペクター内のインポート データを含む実行の実行インデックス。整数として返されます。

インポート データから作成された信号の信号 ID。整数または整数のベクトルとして返されます。

バージョン履歴

R2011b で導入