Main Content

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

データセットの信号形式

説明

記録された Dataset リーフ要素の形式。

カテゴリ: Data Import/Export

設定

既定値: timeseries

timeseries

Dataset 要素値を MATLAB® timeseries 形式で保存します。可変サイズの信号でログ記録されるデータは、各タイム ステップについての信号値の cell 配列を含む timetable に常に格納されます。

timetable

Dataset 要素値を MATLAB timetable 形式で保存します。

書式の比較

[timetable] 形式では、複数のシミュレーションのログ データを簡単にマージできます。

プロパティ表示

timeseries 形式では、時間プロパティ (TimeInfo) 用の最初のフィールドと、データ プロパティ (DataInfo) 用の 2 番目のフィールドが表示されます。たとえば、非スカラー信号の timeseries オブジェクトのプロパティは次のようになります。

ts
 timeseries

  Common Properties:
            Name: ''
            Time: [1001x1 double]
        TimeInfo: [1x1 tsdata.timemetadata]
            Data: [1001x1 double]
        DataInfo: [1x1 tsdata.datametadata]
 

timetable オブジェクトの名前 (たとえば tt) を入力し、プロパティをクエリすると、すべてのプロパティが表示されます。

tt.Properties
ans =

  struct with fileds:

           Description: ''
              UserData: []
        DimensionNames: {'Time' 'Variables'}
  VariableDescriptions: {}
         VariableNames: ['temperature' 'WindSpeed' 'WindDirection']
         VariableUnits: {}
    VariableContinuity: ['continuous']
              RowTimes: [64x1 duration]
              

データ アクセス

timeseries 形式で記録されたデータにアクセスするには、信号の Data プロパティを使用します。たとえば、timeseries オブジェクト ts の場合は次のようになります (最初の 5 個の値のみを表示)。

ts = yout{1}.Values;
ts.Data
ans =

         0
   -0.0002
   -0.0012
   -0.0062
   -0.0306
   

記録された timetable 形式の Dataset データは、1 つの時間列 (Time) と 1 つのデータ列 (Data) をもつテーブルを生成します。Time 列は、指定された信号のシミュレーション時間ベクトルです。duration 型として格納され、シミュレーション時間の単位と一致するように秒が設定され、シミュレーション開始時間で開始します (通常は 0 sec に設定)。[n] および [nx1] の Simulink® 信号の次元は、timetable 表現では等価に扱われます。たとえば、timetable オブジェクト tt の場合は次のようになります (最初の 5 個の値のみを表示)。

tt = yout{1}.Values;
tt.Data
       Time                Data
    _________        ____________

       0 sec         [1x3x2 double]
     0.1 sec         [1x3x2 double]
     0.2 sec         [1x3x2 double]
     0.3 sec         [1x3x2 double]
     0.4 sec         [1x3x2 double]

サンプル数は timetable オブジェクトの Data 列の最初の次元ですが、nonscalar である記録済みの timeseries データのデータ フィールドでは最後の次元です。そのため、timetable 形式のデータにアクセスする場合、各サンプルが非スカラーの配列であるときはデータの形状を変更しなければならない場合があります。1 つのオプションとして、関数 squeeze を使用できます。たとえば、データセットの最初のデータ行にアクセスするには、次のようなコマンドを使用できます。

squeeze(tt.Data{1,1})
ans =
      1    2
      3    4
      5    6

信号がバスまたはバス配列の場合、信号の値は timetable オブジェクトの構造体としてログに記録され、構造体の各リーフはバス内の各リーフ信号のログ記録された結果に対応します。

単位

Simulink に記録されたデータの場合、[timeseries] 形式は Units プロパティの時間値の単位を表示します。単位は任意のクラスの任意の値として指定できます。記録された信号に単位が指定されている場合、timeseries ログはその単位を Simulink.SimulationData.Unit オブジェクトに設定します。読み込み時は、Simulink.SimulationData.Unit 型である場合にのみ単位が適用され、それ以外の場合は無視されます。

[timetable] 形式の場合は、Simulink は記録されたデータの単位をサポートしません。

データの内挿

[timeseries] 形式の Interpolation プロパティは、内挿法が linear (既定値) または zoh であるかを表示します。

[timetable] 形式の VariableContinuity プロパティは、変数の特性 (連続または離散) を示します。シミュレーション データにとって考えられる値は次のとおりです。

  • continuoustimeseries プロパティである linearInterpolation 設定に対応します。Simulink では、連続サンプル時間を入力するためにこの設定が使用されます。

  • steptimeseries プロパティである zohInterpolation 設定に対応します。

    Simulink では、離散サンプル時間を入力するためにこの設定が使用されます。

等間隔および非等間隔の時間

timeseries 形式は、時間データが等間隔または非等間隔であるかを表示します。連続サンプル時間 (線形内挿) 用に記録されたデータの場合、TimeInfo プロパティは時間が非等間隔であることを示し、長さを提供します。離散サンプル時間 (ゼロ次ホールド内挿) の場合、TimeInfo プロパティは時間が等間隔であることを示しており、長さとインクリメント値を提供します。

timetable 形式には等間隔および非等間隔の時間データに対応するプロパティがありません。

timeseries 形式または timetable 形式のデータの場合は、MATLAB 関数 isregular を使用してこの時間情報を取得できます。

信号名

[timeseries] 形式では、記録された信号の名前が Simulink.SimulationData.Element ラッパー オブジェクトと、timeseries オブジェクト自体に保存されます。

[timetable] 形式では、記録された信号の名前が Simulink.SimulationData.Element ラッパー オブジェクトに保存されますが、timetable オブジェクト自体には保存されません。

ヒント

  • Scope ブロックを使用してデータを記録する場合、[データセットの信号形式] パラメーターは影響しません。

プログラムでの使用

パラメーター: DatasetSignalFormat
値: 'timeseries' | 'timetable'
既定の設定: 'timeseries'

推奨設定

アプリケーション設定
デバッグ影響なし
トレーサビリティ影響なし
効率性

推奨なし

安全対策

推奨なし

関連するトピック