Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

getAsDatastore

参照された Dataset オブジェクトから要素の matlab.io.datastore.SimulationDatastore 表現を取得

説明

element = getAsDatastore(dsr,idx) は、インデックス idx に基づいて、Simulink.SimulationData.DatasetRef オブジェクト dsr から要素の matlab.io.datastore.SimulationDatastore 表現を返します。

Dataset の要素の SimulationDatastore 表現は、要素が次の方法で MAT ファイルに配置されている場合に取得できます。

  • Dataset 形式のデータを永続ストレージに記録する

  • 要素を Simulink.SimulationData.Dataset オブジェクトに配置し、Dataset オブジェクトを Version 7.3 の MAT ファイルに保存する

メモ

配列データを格納する Dataset の要素については、SimulationDatastore 表現は作成できません。

SimulationDatastore オブジェクトを使用して、次のことを実行できます。

  • ディスク上の MAT ファイルに保存されている、ログ記録されたシミュレーション データを参照する。

  • ディスクからシミュレーションにインクリメント形式でストリーミングする信号を指定する。

  • MATLAB® 関数を使用したビッグ データ解析の基礎を提供する。

element = getAsDatastore(dsr,elName) は、要素名 elName に基づいて、参照された Dataset オブジェクトから要素または要素の集合の SimulationDatastore 表現を返します。

element = getAsDatastore(dsr,bp) は、ブロック パス bp に基づいて、参照された Dataset オブジェクトから要素または要素の集合の SimulationDatastore 表現を返します。

すべて折りたたむ

Outport ブロックに接続された Sine Wave ブロックを含む SineWave モデルを開きます。

mdl = "SineWave";
open_system(mdl)

出力データを永続ストレージに記録するようにモデルを構成し、モデルをシミュレートします。

  1. [コンフィギュレーション パラメーター]、[データのインポート/エクスポート] ペインで、[データセットのデータをファイルにログ] パラメーターを選択します。次に、[OK] をクリックします。

  2. [実行] をクリックしてモデルのシミュレーションを実行します。

あるいは、プログラムを使用して、Dataset データをファイルに記録するようにモデルを構成し、モデルをシミュレートすることもできます。既定では、データは out.mat という名前の MAT ファイルに保存されます。

sim(mdl,"LoggingToFile","on");

ログに記録された SineWave モデルからの出力データの DatasetRef オブジェクトを作成します。

sigLogRef = Simulink.SimulationData.DatasetRef("out.mat","yout")
sigLogRef = 
  Simulink.SimulationData.DatasetRef
  Characteristics:
          Location: out.mat (/tmp/Bdoc23b_2340827_2286588/tpe2feb488/simulink-ex98930208/out.mat)
        Identifier: yout

  Resolved Dataset: 'yout' with 1 element

       Name     BlockPath     
       _______  _____________ 
    1  sineSig  SineWave/Out1

関数 getAsDatastore を使用して、sineSig 信号の SimulationDatastore オブジェクトを作成します。SimulationDatastore オブジェクトは、返される Simulink.SimulationData.Signal オブジェクトの Values プロパティにあります。

sineSig_dst = getAsDatastore(sigLogRef,"sineSig")
sineSig_dst = 
  Simulink.SimulationData.Signal
  Package: Simulink.SimulationData

  Properties:
              Name: 'sineSig'
    PropagatedName: ''
         BlockPath: [1x1 Simulink.SimulationData.BlockPath]
          PortType: 'inport'
         PortIndex: 1
            Values: [1x1 matlab.io.datastore.SimulationDatastore]

sineSig_dst.Values
ans = 
  SimulationDatastore with properties:

      ReadSize: 100
    NumSamples: 51
      FileName: '/tmp/Bdoc23b_2340827_2286588/tpe2feb488/simulink-ex98930208/out.mat'

    Data Preview:

    Time     Data  
    _____________________    _______

    0 sec                          0
    0.2 sec                  0.19867
    0.4 sec                  0.38942
    0.6 sec                  0.56464
    0.8 sec                  0.71736
    :                        :

モデル MultByTwo には、入力データを 2 倍にし、そのデータを Outport ブロックを使用してログに記録する Gain ブロックが含まれています。

SineWave モデルから参照されたデータを MultByTwo モデルに読み込みます。Signal オブジェクト sineSig_dstValues プロパティが SimulationDatastore オブジェクトであるため、信号データがモデルにストリーミングされます。

mdl2 = "MultByTwo";
open_system(mdl2)
multByTwoOut = sim(mdl2,"LoadExternalInput","on","ExternalInput","sineSig_dst");

MultByTwo モデルの Dashboard Scope ブロックで、SineWave モデルからストリーミングされた入力は振幅 1 の正弦波であり、出力は振幅 2 の正弦波であることがわかります。

入力引数

すべて折りたたむ

MAT ファイルに格納された Dataset オブジェクトへの参照。Simulink.SimulationData.DatasetRef オブジェクトとして指定します。

SimulationDatastore 表現として取得する DatasetRef オブジェクトの要素のインデックス。正の整数として指定します。

SimulationDatastore 表現として取得する DatasetRef オブジェクトの要素の名前。string または文字ベクトルとして指定します。

SimulationDatastore 表現として取得する DatasetRef オブジェクトの要素のブロック パス。Simulink.BlockPath オブジェクトまたは Simulink.SimulationData.BlockPath オブジェクトとして指定します。

出力引数

すべて折りたたむ

参照された Dataset オブジェクトでの要素の SimulationDatastore 表現。matlab.io.datastore.SimulationDatastore オブジェクトとして指定するか、Values パラメーターに matlab.io.datastore.SimulationDatastore オブジェクトが格納された Simulink.SimulationData.SignalSimulink.SimulationData.State、または類似のオブジェクトとして指定します。

代替方法

関数 getAsDatastore を使用する代わりに、中かっこを使用してインデックス構文を効率化し、DatasetRef オブジェクトの信号値の SimulationDatastore オブジェクトを取得できます。中かっこを使用する場合の要件と結果は、関数 getAsDatastore を使用する場合と同じです。たとえば、[データセットのデータをファイルにログ] コンフィギュレーション パラメーターを選択して信号データを永続ストレージに記録するようにモデルを構成し、そのモデルをシミュレートするとします。中かっこを使用して、参照された Dataset オブジェクトの最初の要素の SimulationDatastore オブジェクトを取得できます。SimulationDatastore オブジェクトは、返される Simulink.SimulationData.Signal オブジェクトの Values プロパティにあります。

sigLogRef = Simulink.SimulationData.DatasetRef('out.mat','logsout');
firstSig = sigLogRef{1}
ans = 

  Simulink.SimulationData.Signal
  Package: Simulink.SimulationData

  Properties:
              Name: 'x1'
    PropagatedName: ''
         BlockPath: [1x1 Simulink.SimulationData.BlockPath]
          PortType: 'outport'
         PortIndex: 1
            Values: [1×1 matlab.io.datastore.SimulationDatastore]

バージョン履歴

R2017a で導入