メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

mdfRead

MDF ファイルからチャネルデータを読み取る

R2023a 以降

説明

data = mdfRead(mdfFileName) は、指定された MDF ファイルからすべてのチャネルのすべてのデータを読み取り、出力を cell 配列 data に割り当てます。出力 cell 配列には、返されたデータの各チャネル グループの timetable が含まれます。cell 配列のインデックスは、返されたチャネル グループのシーケンスに対応します。

data = mdfRead(___,Name=Value) では、名前と値の引数を使用して、特定のチャネルとチャネル グループをフィルター処理したり、メタデータを要求したり、その他のオプションを適用したりできます。

すべて折りたたむ

MDF ファイルから利用可能なすべてのデータを読み取ります。

data = mdfRead("VehicleData.mf4");
head(data{1}) % First timetable in returned cell array.
      time      EngineRPM    Brake    Throttle    Gear    ImpellerTorque    OutputTorque    TransmissionRPM    VehicleSpeed
    ________    _________    _____    ________    ____    ______________    ____________    _______________    ____________

    0 sec          1000        0           60      1          52.919           282.65                0                 0   
    0.04 sec     1383.3        0       59.946      1           101.4           532.63           13.593           0.30047   
    0.08 sec     1685.4        0       59.893      1          150.76           776.41           35.847            0.7924   
    0.12 sec     1907.2        0       59.839      1          193.42           973.15           65.768            1.4538   
    0.16 sec       2062        0       59.785      1          227.02           1117.6           101.53            2.2443   
    0.2 sec      2161.2        0       59.732      1          251.11           1212.8           141.45            3.1268   
    0.24 sec     2221.4        0       59.678      1          267.24           1264.3           183.86            4.0644   
    0.28 sec     2257.2        0       59.624      1          276.35           1271.2           227.25            5.0234   

変換ルールを適用せずに生のデータを読み取ります。

dataraw = mdfRead("VehicleData.mf4",ReadRaw=true);

指定されたチャネル名の MDF ファイルから利用可能なすべてのデータを読み取ります。

data = mdfRead("VehicleData.mf4",Channel=["*Torque" "*Rate"]);

インデックスを使用して開始と終了を指定し、MDF ファイルからデータの範囲を読み取ります。

data = mdfRead("VehicleData.mf4",IndexRange=[65,128]);

指定された期間にわたって MDF ファイルから一定範囲のデータを読み取ります。

data = mdfRead("VehicleData.mf4",TimeRange=seconds([0,30]));

mdfChannelInfo 関数によって識別されるチャネルからデータを読み取ります。

チャネルのテーブルを取得し、その名前とグループ番号を表示します。

chanInfoTable = mdfChannelInfo("VehicleData.mf4",Channel=["*Torque","*Speed"]);
chanInfoTable(:,1:3) % Partial display.
ans = 
  3×3 table

          Name          GroupNumber    GroupNumSamples
    ________________    ___________    _______________

    "ImpellerTorque"         1               751
    "OutputTorque"           1               751
    "VehicleSpeed"           1               751

指定されたチャネルからデータを読み取ります。

data = mdfRead("VehicleData.mf4",Channel=chanInfoTable);
head(data{1}) % View top of data timetable.
      time      ImpellerTorque    OutputTorque    VehicleSpeed
    ________    ______________    ____________    ____________

    0 sec           52.919           282.65               0
    0.04 sec         101.4           532.63         0.30047
    0.08 sec        150.76           776.41          0.7924
    0.12 sec        193.42           973.15          1.4538   
    0.16 sec        227.02           1117.6          2.2443
    0.2 sec         251.11           1212.8          3.1268
    0.24 sec        267.24           1264.3          4.0644
    0.28 sec        276.35           1271.2          5.0234

チャネル グループ メタデータおよびチャネル メタデータとともに、MDF ファイルからデータを timetable に読み取ります。

メタデータを含む MDF ファイルからすべてのデータを読み取り、最初のチャネル グループのメタデータを表示します。

dataGrp1 = mdfRead("VehicleData.mf4",IncludeMetadata=true);
dataGrp1{1}.Properties.CustomProperties
ans = 

CustomProperties with properties:

           ChannelGroupAcquisitionName: ""
                   ChannelGroupComment: "Simulation of an automatic transmission controller during passing maneuver."
                ChannelGroupSourceName: ""
                ChannelGroupSourcePath: ""
             ChannelGroupSourceComment: ""
                ChannelGroupSourceType: Unspecified
             ChannelGroupSourceBusType: Unspecified
    ChannelGroupSourceBusChannelNumber: 0
                    ChannelDisplayName: [""    ""    ""    ""    ""    ""    ""    ""]
                        ChannelComment: [""    ""    ""    ""    ""    ""    ""    ""]
                           ChannelUnit: ["rpm"    "ft*lbf"    "%"    ""    "ft*lbf"    "ft*lbf"    "rpm"    "mph"]
                           ChannelType: [FixedLength    FixedLength    FixedLength    FixedLength    FixedLength    FixedLength    …    ]
                       ChannelDataType: [RealLittleEndian    IntegerUnsignedLittleEndian    RealLittleEndian    …    ]
                        ChannelNumBits: [64 8 64 8 64 64 64 64]
                  ChannelComponentType: [None    None    None    None    None    None    None    None]
                ChannelCompositionType: [None    None    None    None    None    None    None    None]
                     ChannelSourceName: [""    ""    ""    ""    ""    ""    ""    ""]
                     ChannelSourcePath: [""    ""    ""    ""    ""    ""    ""    ""]
                  ChannelSourceComment: [""    ""    ""    ""    ""    ""    ""    ""]
                     ChannelSourceType: [Unspecified    Unspecified    Unspecified    Unspecified    Unspecified    Unspecified    …    ]
                  ChannelSourceBusType: [Unspecified    Unspecified    Unspecified    Unspecified    Unspecified    Unspecified    …    ]
         ChannelSourceBusChannelNumber: [0 0 0 0 0 0 0 0]
                     ChannelReadOption: [All    All    All    All    All    All    All    All]

入力引数

すべて折りたたむ

必要な完全パスまたは相対パスを含む文字列または文字ベクトルとして指定された MDF ファイル名。URL を使用してリモート サーバー上のファイルを指定できます。

アクセスする場所に応じて、mdfFileName は次のいずれかの形式になります。

位置

形式

現在のフォルダまたはMATLAB®パス

現在のフォルダーまたは MATLAB パス内のファイルにアクセスするには、ファイル拡張子を含む filename でファイル名を指定します。

例: "myMdfFile.mf4"

その他のフォルダー

現在のフォルダー以外のフォルダー内のファイルにアクセスするには、filename で完全パス名または相対パス名を指定します。

例: "C:\myFolder\myMdfFile.mf4"

例: "\dataDir\myMdfFile.mf4"

リモートの場所

リモート ロケーションのファイルにアクセスするには、filename に、次の形式の Uniform Resource Locator (URL) として指定されたファイルの完全なパスが含まれている必要があります。

scheme://path_to_file/myMdfFile.mf4

リモートの場所に基づいて、scheme には次の表の値のいずれかを指定できます。

リモートの場所scheme
Amazon S3™s3
Windows Azure® Blob Storagewasb, wasbs
HDFS™hdfs

詳細については、リモート データの操作を参照してください。

例: "s3://bucketname/path_to_file/myMdfFile.mf4"

データ型: string | char

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: GroupNumber=2

チャネル グループ番号。1 つのグループの場合は数値スカラーとして指定し、複数のグループの場合は数値ベクトルとして指定します。この関数は、指定されたチャネル グループ内でのみ見つかったチャネルからのデータを返します。指定しない場合は、すべてのチャネル グループのデータが返されます。

例: GroupNumber=[1,2]

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

データを返すチャネル名。文字列または文字列の配列、あるいは文字ベクトルまたは文字ベクトルの cell 配列として指定します。配列を使用して、複数のチャネル名のいずれかに一致させます。ワイルドカードを使用すると部分一致が可能になります。指定しない場合は、すべてのチャネルのデータが返されます。

mdfChannelInfo 関数によって生成されたテーブルを使用してチャネルを指定することもできます。テーブルを使用してチャネルを指定する場合、GroupNumber オプションは無視されます。

例: Channel=["*Rate","*Speed"]

データ型: string | char | cell | table

true または false として指定された絶対タイムスタンプを返します。true を指定した場合、返される timetable には datetime の絶対タイムスタンプが含まれます。false を指定した場合、返される timetable には、ファイルの最初のタイムスタンプからの経過期間の相対タイムスタンプが含まれます。デフォルト値は false で、相対タイムスタンプを返します。

例: AbsoluteTime=true

データ型: logical

データの読み取り間隔の開始時刻と終了時刻。2 要素のベクトルとして指定されます。AbsoluteTime=true の場合は、datetime ベクトルとして TimeRange を指定します。AbsoluteTime=false (デフォルト) の場合は、期間ベクトルとして TimeRange を指定します。指定しない場合は、すべてのデータ サンプルが読み取られます。このオプションを IndexRange と組み合わせることはできません。

例: TimeRange=seconds([0,60])

データ型: datetime | duration

データの読み取り間隔の開始インデックスと終了インデックス。2 要素のベクトルとして指定されます。インデックスは両端を含みます。指定しない場合は、すべてのデータ サンプルが読み取られます。このオプションを TimeRange と組み合わせることはできません。

例: IndexRange=[65:128]

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

true または false として指定された生のデータ値を読み取ります。true を指定した場合、データは生の値として読み取られます。false を指定した場合、データは物理値として読み取られます。既定値は false です。

例: ReadRaw=true

データ型: logical

結果に、true または false として指定されたチャネル グループ メタデータとチャネル メタデータを含めます。true の場合、返される各 timetable にメタデータがカスタム プロパティとして追加されます。メタデータは、空ではない出力 timetable にのみ含まれます。false の場合、メタデータは含まれません。既定値は false です。

mdfRead は各チャネル グループの timetable を返すため、このチャネル グループとこのグループ内のすべてのチャネルのメタデータがカスタム プロパティとして timetable に追加されます。timetable tt のカスタム プロパティには tt.Properties.CustomProperties からアクセスできます。

メタデータが含まれている場合、mdfRead 関数の実行に時間がかかります。

例: IncludeMetadata=true

データ型: logical

true または false として指定された各チャネル グループ出力 timetable にイベント テーブルを添付します。true (デフォルト) の場合、関数は各 timetable 出力にイベントテーブルを添付し、返された timetable のプロパティ (tt.Properties.Events) でアクセスできるようになります。

詳細については、例 MDFイベントの操作を参照してください。

例: IncludeEvents=false

データ型: logical

MDF ファイルから有効性データを読み取るための命令。次のいずれかの文字列値として指定されます。

  • "include" (デフォルト) — 有効性データを読み取り、返された timetable のカスタム プロパティ tt.Properties.CustomProperties.Validity に保存します。

  • "ignore" — 有効性データを読み取りません。

  • "replace" — 有効性データを読み取り、すべての無効なサンプルを MATLAB missing 値に置き換えます。無効なサンプルを含むすべての整数チャネルは double に変換されます。

詳細については、例 MDF ファイルから有効性データを読み取るを参照してください。

例: ValidityRule="replace"

データ型: char | string

出力引数

すべて折りたたむ

チャネル データは、各グループの timetable を含む timetable の cell 配列として返されます。

制限

  • mdfRead は 3 次元を超える配列チャネルをサポートしていません。

  • ネストされたチャネル構成からの読み取りはサポートされていません。単純な構造のチャネルまたは配列のチャネルからは読み取ることができますが、構成された信号の構造または配列からは読み取ることができません。

  • mdfRead は、部分的な変換ルールを持つチャネルからの読み取りをサポートしていません。

バージョン履歴

R2023a で導入

すべて展開する