matlab.io.datastore.SimulationDatastore クラス
パッケージ: matlab.io.datastore
Simulink モデルの入力および出力用データ ストア
説明
matlab.io.datastore.SimulationDatastore
オブジェクトにより、Simulink® モデルでビッグ データを操作できます。ビッグ データをシミュレーション入力として読み込み、シミュレーションからのビッグ出力データをログに記録できます。ビッグ データでモデルのシミュレーションを実行するためには、データを MAT ファイルに保存し、SimulationDatastore
オブジェクトを介してデータを参照します。シミュレーションのためのビッグ データの処理を参照してください。
SimulationDatastore
オブジェクトは 1 つの信号の (MAT ファイルに格納される) ビッグ シミュレーション データを参照します。MAT ファイルにバス信号のシミュレーション データが保存される場合、SimulationDatastore
オブジェクトは、バス内の 1 つのリーフ信号要素のデータを参照します。データ ストア オブジェクトを使用してデータを検査したりアクセスし、Simulink.SimulationData.Signal
などの親オブジェクトを使って、そのデータで Simulink モデルのシミュレーションを実行できます。
データ ストアのデータを解析するには、SimulationDatastore
オブジェクトのメソッドとプロパティおよび関数 tall
などの MATLAB® ツールを使用できます。MATLAB ツールの詳細については、データ ストア入門を参照してください。
作成
MAT ファイルに Simulink.SimulationData.Dataset
オブジェクトのビッグ シミュレーション データを保存した後、Dataset
オブジェクトの信号要素はビッグ データを指し示します。ビッグ データを参照する matlab.io.datastore.SimulationDatastore
オブジェクトを作成するには、次を行います。
コマンド プロンプトまたはスクリプトで、MAT ファイルの
Dataset
オブジェクトを参照するSimulink.SimulationData.DatasetRef
オブジェクトを作成します。以下のいずれかの方法を使用します。
1 ベースの中かっこによるインデックス付け (たとえば
{1}
) を使用して、Simulink.SimulationData.Signal
やSimulink.SimulationData.State
などのターゲット信号要素を表すオブジェクトを返します。たとえば、logsout_ref
という名前のDatasetRef
オブジェクトの場合、2 つ目の信号要素を参照するSignal
オブジェクトを作成するには、次のコードを使用します。myLoggedSig = logsout_ref{2}
DatasetRef
オブジェクトのgetAsDatastore
メソッドを使用して、ターゲットの信号要素を表すオブジェクトを返します。詳細については、getAsDatastore
を参照してください。
SimulationDatastore
オブジェクトは、返されるオブジェクトの Values
プロパティに存在します。
プロパティ
メソッド
hasdata | データが読み取り可能かどうかを判別 |
isPartitionable | データストアが分割可能かどうかを判別 |
isShuffleable | データストアがシャッフル可能かどうかを判別 |
preview | データ ストアからデータのサブセットを返す |
progress | データ ストアから読み取ったデータの割合を返す |
read | データ ストアのデータの読み取り |
readall | データ ストアのすべてのデータの読み取り |
reset | データ ストアの初期状態へのリセット |
コピーのセマンティクス
ハンドル。ハンドル クラスがコピー操作にどのように影響するかについては、オブジェクトのコピーを参照してください。
制限
SimulationDatastore
は、Parallel Computing Toolbox™ がインストールされている状態での並列プールの使用をサポートしません。tall 配列を使用してデータを解析する、または MapReduce アルゴリズムを実行するには、mapreducer
を使用してグローバルな実行環境をローカルの MATLAB セッションに設定します。次のコードを入力します。並列リソースの制御の詳細については、並列プール上での mapreduce の実行 (Parallel Computing Toolbox)を参照してください。mapreducer(0)
MATLAB tall 変数はシミュレーション入力データとして使用できません。
例
バージョン履歴
R2017a で導入