mdfRead
说明
从指定的 MDF 文件中读取所有通道的所有数据,并将输出赋给元胞数组 data
= mdfRead(mdfFileName
)data
。输出元胞数组包含返回数据的每个通道组的时间表,其中元胞数组索引对应于返回通道组的序列。
允许名称-值参量对特定通道和通道组进行过滤、请求元数据和应用其他选项。data
= mdfRead(___,Name=Value
)
示例
从 MDF 文件中读取所有数据
从 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 文件中的数据以及通道组元数据和通道元数据一起读入一个时间表。
从 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]
输入参数
mdfFileName
— MDF 文件名
字符串 | 字符向量
MDF 文件名(包括必要的完整或相对路径),指定为字符串或字符向量。您可以使用 URL 来指定远程服务器上的文件。
根据您要访问的位置,mdfFileName
可以采用以下形式之一。
位置 | 形式 | ||||||||
---|---|---|---|---|---|---|---|---|---|
当前文件夹或 MATLAB® 路径 | 要访问当前文件夹或 MATLAB 路径中的文件,请在 示例: | ||||||||
其他文件夹 | 要访问当前文件夹以外的文件夹中的文件,请在 示例: 示例: | ||||||||
远程位置 | 要访问远程位置的文件,
根据远程位置,
有关详细信息,请参阅处理远程数据。 示例: |
数据类型: string
| char
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量后,但参量对组的顺序无关紧要。
在 R2021a 之前,需要使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: GroupNumber=2
GroupNumber
— 通道组编号
数值
对于一个组,通道组编号指定为数值标量;对于多个组,指定为数值向量。该函数返回仅在这些指定通道组中找到的通道的数据。如果未指定,则返回所有通道组的数据。
示例: GroupNumber=[1,2]
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Channel
— 通道名称
字符串 | 字符 | 元胞 | 表
要从中返回数据的通道名称,指定为字符串或字符串数组,或者指定为字符向量或字符向量元胞数组。使用数组匹配多个通道名称中的任一个。通配符允许部分匹配。如果未指定,则返回所有通道的数据。
您还可以使用由 mdfChannelInfo
函数生成的表来指定通道。使用表指定通道时,会忽略 GroupNumber
选项。
示例: Channel=["*Rate","*Speed"]
数据类型: string
| char
| cell
| table
AbsoluteTime
— 返回绝对时间戳
false
(默认) | true
返回绝对时间戳,指定为 true
或 false
。如果指定 true
,则返回的时间表包含日期时间类型的绝对时间戳,绝对时间戳基于文件的初始时间戳计算。如果指定 false
,则返回的时间表包含持续时间类型的相对时间戳,相对时间戳为从文件的初始时间戳起计的历时。默认值为 false
,表示返回相对时间戳。
示例: AbsoluteTime=true
数据类型: logical
TimeRange
— 数据的时间间隔
日期时间向量 | 持续时间向量
读取数据的间隔的开始时间和结束时间,指定为二元素向量。如果 AbsoluteTime=true
,请将 TimeRange
指定为日期时间向量。如果 AbsoluteTime=false
(默认值),请将 TimeRange
指定为持续时间向量。如果未指定,则读取所有数据采样。您无法将此选项与 IndexRange
结合使用。
示例: TimeRange=seconds([0,60])
数据类型: datetime
| duration
IndexRange
— 要读取的数据的开始和结束索引
数值向量
要从中读取数据的间隔的起始索引和结束索引,指定为二元素向量。这些索引包含边界值。如果未指定,则读取所有数据采样。您无法将此选项与 TimeRange
结合使用。
示例: IndexRange=[65:128]
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
ReadRaw
— 读取原始数据值
false
(默认) | true
读取原始数据值,指定为 true
或 false
。如果指定 true
,数据将读取为原始值。如果指定 false
,数据将读取为物理值。默认值为 false
。
示例: ReadRaw=true
数据类型: logical
IncludeMetadata
— 包括通道组和通道的元数据
false
(默认) | true
在结果中包括通道组元数据和通道元数据,指定为 true
或 false
。如果为 true
,元数据将作为自定义属性添加到每个返回的时间表中。只有非空输出时间表才包含元数据。如果为 false
,则不包括元数据。默认值为 false
。
由于 mdfRead
返回每个通道组的时间表,此通道组和此组中所有通道的元数据都作为自定义属性添加到时间表中。您可以通过 tt.Properties.CustomProperties
访问时间表 tt
自定义属性。
当包含元数据时,mdfRead
函数需要更长的时间来执行。
示例: IncludeMetadata=true
数据类型: logical
输出参量
data
— 通道数据
时间表元胞数组
通道数据,以时间表的元胞数组形式返回,每个组有一个对应的时间表。
限制
mdfRead
不支持 3 个以上维度的数组通道。不支持从嵌套的通道组合中读取。您可以从简单结构体通道或数组通道中读取,但无法从合成信号的结构体或数组中读取。
mdfRead
忽略失效位,因此没有无效采样的指示,也没有错误或警告。mdfRead
只是读入存储在 MDF 文件中记录位置的数据值。mdfRead
不支持从具有部分转换规则的通道中读取。
版本历史记录
在 R2023a 中推出R2023a: 支持远程文件 URL
您可以直接访问存储在远程位置的 MDF 文件数据,包括 Amazon S3、Azure® Blob 存储和 HDFS。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)