Main Content

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

addElement

クラス: Simulink.SimulationData.Dataset
パッケージ: Simulink.SimulationData

Dataset オブジェクトの最後に要素を追加

構文

dataset = addElement(dataset,element)
dataset = addElement(dataset,element,name)

説明

dataset = addElement(dataset,element) は、要素を Simulink.SimulationData.Dataset データセットに追加します。

dataset = addElement(dataset,element,name) は、要素を Simulink.SimulationData.Dataset データセットに追加し、その要素に name 引数で指定した名前を付けます。オブジェクトに既に名前が設定されている場合、その名前の代わりに、name 引数で指定した名前が使用されます。

入力引数

すべて展開する

要素を追加するデータセット。

データセットに追加する要素。Simulink.SimulationData.SignalSimulink.SimulationData.DataStoreMemory または matlab.io.datastore.SimulationDatastore オブジェクトとして指定します。

要素の名前。文字ベクトルとして指定します。

出力引数

すべて展開する

要素を追加するデータセット。文字ベクトルとして返されます。新規の要素は、データセットの最後に追加されます。

すべて展開する

データセットを作成し、要素を 3 つ追加します。

time = 0.1*(0:100)';
ds = Simulink.SimulationData.Dataset;
element1 = Simulink.SimulationData.Signal;
element1.Name = 'A';
element1.Values = timeseries(sin(time),time);
ds = addElement(ds,element1);
element2 = Simulink.SimulationData.Signal;
element2.Name = 'B';
element2.Values = timeseries(2*sin(time),time);
ds = addElement(ds,element2);
element3 = Simulink.SimulationData.Signal;
element3.Name = 'C';
element3.Values = timeseries(3*sin(time),time);
ds = addElement(ds,element3);
ds
ds = 

Simulink.SimulationData.Dataset '' with 3 elements

                         Name  BlockPath 
                         ____  _________ 
    1  [1x1 Signal]      A     ''       
    2  [1x1 Signal]      B     ''       
    3  [1x1 Signal]      C     ''       

  - Use braces { } to access, modify, or add elements using index.

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

データの作成

ワークスペースでデータを作成します。シミュレーション データ インスペクターは時系列データを多くの形式でサポートします。この例では、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');

代替方法

インデックス構文を効率化するために、addElement を使用する代わりに、中かっこ ({}) を使用して要素をデータセットに追加できます。インデックスには、要素数より 1 大きいスカラーを使用します。新しい要素はデータセットの最後の要素になります。

time = 0.1*(0:100)';
ds = Simulink.SimulationData.Dataset;
element1 = Simulink.SimulationData.Signal;
element1.Name = 'A';
element1.Values = timeseries(sin(time),time);
ds{1} = element1;
element2 = Simulink.SimulationData.Signal;
element2.Name = 'B';
element2.Values = timeseries(2*sin(time),time);
ds{2} = element2;
element3 = Simulink.SimulationData.Signal;
element3.Name = 'C';
element3.Values = timeseries(3*sin(time),time);
ds{3} = element3;
R2011a で導入