主要内容

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

ログデータのデータセット変換

数据集形式に変換する理由

次のいずれかの形式で記録されたログデータを含むMATLAB®ワークスペース変数は,金宝appSimulink.SimulationData.Datasetコンストラクターを使用して数据集形式に変換することができます。

  • 配列

  • 構造体

  • 時間付き構造体

  • MATLAB時系列

  • ModelDataLogs

金宝app®の他のログ形式のデータを数据集形式に変換すると,ログデータの後処理を実行するスクリプトの作成が簡単になります。たとえば,複数の到工作空间ブロックをもつモデルはさまざまなデータ形式を使用できます。ログデータを数据集形式に変換すると,さまざまな形式を処理するために特別なコードを記述する必要がなくなります。

データログ形式のサポートレベルはシミュレーションモードごとに異なります。ノーマルモードとアクセラレータモードの間でモードを切り替えるときは,使用するログ形式の変更が必要になることがあります。

数据集形式に変換することで,数据集形式を必要とする機能も簡単に利用できるようになります。以前のリリースで記録された数据集以外の形式のログデータを簡単に変換して,新しいリリースの数据集データと一緒に使用できます。

数据集形式には次のような特徴があります。

  • MATLABtimeseriesオブジェクトを使用してログデータを格納すると,MATLABで仿真软金宝app件ライセンスなしでログデータを操作可能。たとえば,ログデータを操作するには,过滤器去趋势重新取样などのMATLAB時系列のメソッドを使用可能。

  • 反復サブシステムやStateflow®信号ログに重要となる所定のタイムステップでの複数データ値のログをサポート。

既定の設定では,生成される数据集オブジェクトの名前には変数の名前が使用されます。名前と値のペアを使用して数据集の名前を指定できます。

concatメソッドを使用して,複数の数据集オブジェクトを1つの数据集オブジェクトに連結することができます。

変換結果

数据集オブジェクトでは,データが要素として格納されます。変数数据集の要素を表示するには,MATLABコマンドプロンプトで変数名を入力します。数据集オブジェクトの要素のタイプは,格納されるデータに応じて異なります。たとえば,信号ログでは金宝appSimulink.SimulationData.Signal要素としてデータが格納され,数据集形式の状態ログでは金宝appSimulink.SimulationData.State要素として格納されます。それぞれの要素ではMATLAB時系列オブジェクトとしてデータが格納されます。変換の実行時は,要素や時系列のフィールドに変換後のオブジェクトからできるだけ多くの値が読み込まれるように処理されます。

形式 変換結果に関するメモ

MATLAB時系列

非バスデータのログを変換するときは,ソフトウェアによって,まず金宝appSimulink.SimulationData.Signalオブジェクトとしてデータが追加されます。その後,そのオブジェクトが新たに作成された数据集の要素として追加されます。

時系列形式のバスデータのログでは,それぞれの時系列がバスの各要素に対応します。これらのログデータは,変換すると時系列オブジェクトをリーフノードとする構造体にまとめられます。この構造体の階層はバスの階層に対応します。このタイプの時系列オブジェクトの構造体を変換するときは,構造体全体が金宝appSimulink.SimulationData.Signalオブジェクトに追加されます。その後,そのオブジェクトがデータセットの要素として追加されます。

時系列オブジェクトには,ブロックパスやタイムスタンプなどの関連情報が格納されています。変換時には,その情報を維持するように処理されます。

構造体および時間付き構造体

構造体および時間付き構造体の形式では,数据集形式で記録した場合ほど多くの情報が格納されるとは限りません。ただし,構造体および時間付き構造体の形式を変換するときは,データ構造体に时间フィールドと信号フィールドがなければなりません。

構造体の変換では,構造体が金宝appSimulink.SimulationData.Signalオブジェクトに追加され,そのオブジェクトがデータセットの要素として追加されます。他の情報がある場合は,要素または時系列の値に追加されます。たとえば,構造体にblockNameというフィールドがある場合,その情報がブロックパスに追加されます。それ以外の場合,ブロックパスは空になります。

スコープデータを構造体形式で記録する場合,その構造体にはPlotStyleフィールドが含まれます。このフィールドを使用して,数据集オブジェクトの内挿が設定されます。

配列

配列に格納される情報は多くありません。たとえば,ブロックパスの情報は格納されません。

配列の変換では,配列が金宝appSimulink.SimulationData.Signalオブジェクトに追加され,そのオブジェクトが数据集オブジェクトの要素として追加されます。ブロックパスやタイムスタンプなどの情報がないフィールドについては、空の状態になるか既定値が設定されます。

ModelDataLogs

ModelDataLogs形式から数据集形式にデータが変換されます。

メモ

ModelDataLogs形式は信号のログには使われなくなります。

データセット変換の制限

  • ログデータを数据集形式に変換すると,元のログデータに含まれていたすべての情報が数据集オブジェクトに格納されます。ただし,対応する情報がない数据集の他のプロパティについては既定値が使用されます。

  • 到工作空间ブロックを使用してログ記録された可変サイズの信号のデータを変換すると,構造体のvalueDimensionsフィールドの情報が変換で失われます。

  • バス信号を配列,構造体,時間付き構造体の形式で記録すると,ログデータは次のように整理されます。

    • バスの最初の信号のデータが1列目に含まれる

    • 2番目のバス信号のデータが2列目に含まれる(それ以降も同様)

    このデータを数据集に変換するときは,数据集でもこの構成が維持されます。ただし,変換ではなく数据集形式でバス信号のログを作成する場合は,このバスデータは時系列オブジェクトの構造体として取得されます。

  • ログデータに時間ベクトルが含まれていない場合,そのデータを数据集に変換すると,変換によって時間ベクトルが挿入されます。それぞれのデータ値にはタイムステップが1つずつあります。ただし,シミュレーションのタイムステップと数据集のタイムステップは可変です。

  • 数据集形式ではフレーム信号の仕様は無視されます。構造体または時間付き構造体のデータを数据集に変換する際,フレーム信号のログデータは形状変更されます。

参考

関連するトピック