Main Content

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

Simulink.sdi.createRun

データをシミュレーション データ インスペクターにインポートする

説明

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) はベース ワークスペース内の 1 つ以上の変数からのデータを含む runName という名前の実行を作成します。この構文を使用して、複数の変数または、オブジェクトの配列 (Simulink.SimulationOutput オブジェクトまたは Simulink.SimulationData.Dataset オブジェクトの配列など) を表す 1 つの変数からデータをインポートします。

runID = Simulink.sdi.createRun(runName,'file',filename) は、filename で指定されるファイル内のデータを含む実行を作成します。

runID = Simulink.sdi.createRun(runName,'file',filename,reader) はファイル リーダー reader を使用して、ファイル filename 内のデータを含む実行を作成します。インポートするデータをもつファイルをサポートする複数のファイル リーダーがシミュレーション データ インスペクターに登録される場合は、この構文を使用します。ファイルに使用できるリーダーを判別するには、関数 io.reader.getSupportedReadersForFile を使用します。

runID = Simulink.sdi.createRun(runName,'namevalue',sourceNames,sigValues) は cell 配列 sigValues 内のデータを含む実行を作成します。cell 配列 sourceNamessigValues cell 配列からインポートされた信号の RootSourceTimeSource、および DataSource プロパティを設定するために使用されるソース名を指定します。

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

[runID,runIndex,signalIDs] = Simulink.sdi.createRun(___) はシミュレーション データ インスペクター内の実行 ID、実行のインデックスと、実行内の信号の信号 ID を返します。

すべて折りたたむ

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

データの作成

ワークスペースでデータを作成します。シミュレーション データ インスペクターは時系列データを多くの形式でサポートします。この例では、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 を使用して、ファイルのデータをシミュレーション データ インスペクターにインポートすることもできます。simusoids.mat ファイルのデータをインポートするには、file オプションを使用します。

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

この例では、シミュレーション データ インスペクターで実行を作成するときに信号データにアクセスする方法について説明します。

実行のデータを生成

この例では、正弦信号と余弦信号の時系列データを作成します。

% Create timeseries workspace data
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.Run オブジェクトを介して信号 ID にアクセスする代わりに、Simulink.sdi.createRun 構文を複数の戻り引数を伴って使用すると、信号 ID をより直接的に取得できます。

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

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

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

Simulink.sdi.Signal オブジェクトを使用して信号プロパティを表示および変更し、シミュレーション データ インスペクターで信号をプロットできます。

cosSig.Checked = true;
cosSig.AbsTol = 0.05;
Simulink.sdi.view
cosSig.Name

入力引数

すべて折りたたむ

シミュレーション データ インスペクター内の実行。文字ベクトルまたは 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 入力を指定します。

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

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

例: 'simulation.mat'

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

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

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

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

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

例: 'MyExcelReader'

例: 'built-in'

出力引数

すべて折りたたむ

新しい実行の実行識別子。スカラーとして返されます。

シミュレーション データ インスペクター内の新しい実行のインデックス。スカラーとして返されます。

実行内の信号の信号 ID。ベクトルとして返されます。

R2011b で導入