本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

read

从 MDF 文件中读取通道数据

说明

示例

data = read(mdfObj) 从 MDF 文件对象 mdfObj 标识的 MDF 文件中读取所有通道的所有数据,并将输出赋给 data。如果文件数据是一个通道组,则输出是一个时间表;多个通道组以时间表的元胞数组形式返回,其中元胞数组索引对应于通道组编号。

示例

data = read(mdfObj,chanGroupIndex,chanName) 从 MDF 文件对象 mdfObj 标识的 MDF 文件中读取指定通道的所有数据。

示例

data = read(mdfObj,chanGroupIndex,chanName,startPosition)startPosition 指定的位置读取数据。

示例

data = read(mdfObj,chanGroupIndex,chanName,startPosition,endPosition) 读取从 startPositionendPosition 的指定范围的数据。

示例

data = read(mdfObj,chanGroupIndex,chanName,startPosition,endPosition,'OutputFormat',fmtType) 以指定的输出格式返回数据。

示例

[data,time] = read(mdfObj,chanGroupIndex,chanName,startPosition,endPosition,'OutputFormat','Vector') 返回表示通道数据及其对应时间戳的两个向量。

示例

全部折叠

从 MDF 文件中读取所有可用数据。

mdfObj = mdf('MDFFile.mf4');
data = read(mdfObj);

从 MDF 文件中读取指定通道的所有可用数据。

mdfObj = mdf('MDFFile.mf4');
data = read(mdfObj,1,{'Channel1','Channel2'});

使用索引形式的 startPositionendPosition 指定数据范围,从 MDF 文件中读取指定范围内的数据。

mdfObj = mdf('MDFFile.mf4');
data = read(mdfObj,1,{'Channel1','Channel2'},1,10);

使用时间值形式的 startPositionendPosition 指定数据范围,从 MDF 文件中读取指定范围内的数据。

mdfObj = mdf('MDFFile.mf4');
data = read(mdfObj,1,{'Channel1','Channel2'},seconds(5.5),seconds(7.3));

从 MDF 文件中读取所有可用数据,返回数据和时间向量。

mdfObj = mdf('MDFFile.mf4');
[data,time] = read(mdfObj,1,'Channel1','OutputFormat','Vector');

从 MDF 文件中读取所有可用数据,返回时序数据。

mdfObj = mdf('MDFFile.mf4');
data = read(mdfObj,1,'Channel1','OutputFormat','TimeSeries');

channelList 函数标识的通道中读取数据。

获取通道列表并显示其名称和组号。

mdfObj = mdf('File05.mf4');
chlist = channelList(mdfObj);
chlist(:,1:2)
  4×2 table

                ChannelName                 ChannelGroupNumber
    ____________________________________    __________________

    "Float_32_LE_Offset_64"                         2         
    "Float_64_LE_Master_Offset_0"                   2

从列表中的第一个通道读取数据。

data = read(mdfObj,chlist{1,2},chlist{1,1});
data(1:5,:)
  5×1 timetable

      Time      Float_32_LE_Offset_64
    ________    _____________________

    0 sec                  5         
    0.01 sec             5.1         
    0.02 sec             5.2         
    0.03 sec             5.3         
    0.04 sec             5.4

输入参数

全部折叠

MDF 文件,指定为 MDF 文件对象。

示例: mdf('MDFFile.mf4')

通道组的索引,指定为数值,用于标识要读取的通道组。

示例: 1

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

通道的名称,指定为字符向量、字符串或数组。chanName 标识通道组中一个通道的名称。使用字符向量元胞数组或字符串数组来标识多个通道。

示例: 'Channel1'

数据类型: char | string | cell

通道数据的第一个位置,指定为数值或持续时间。startPosition 选项指定读取通道数据时的第一个位置。提供数值以指定索引位置;使用持续时间以指定时间位置。如果仅提供 startPosition 而没有提供 endPosition 选项,则返回该位置的数据值。当与 endPosition 结合使用以指定范围时,该函数将返回从 startPosition(包含此值)到 endPosition(不包含此值)范围的数据。

示例: 1

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | duration

通道数据范围的最后位置,指定为数值或持续时间。endPosition 选项指定读取一定范围的通道数据时的最后一个位置。同时提供 startPositionendPosition 可指定检索一定范围的数据。读取该范围的数据时,该函数返回到 endPosition 为止(但不包含此值)的数据。提供数值以指定索引位置;使用持续时间以指定时间位置。

示例: 1000

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | duration

输出数据的格式,指定为字符向量或字符串。此选项根据下表格式化输出。

输出格式说明
'Timetable'

将来自一个或多个通道的时间表返回到一个输出变量中。这是同时从多个通道读取时唯一允许的格式。(默认值。)

注意:时间表格式包括表示 MDF 通道的列。由于列标题必须是有效的 MATLAB® 标识符,因此它们可能与 MDF 对象 ChannelNames 属性中的值不完全相同。列标题是使用 matlab.lang.makeValidName 函数从属性派生的。原始通道名称位于 timetable 对象的 VariableDescriptions 属性中。

'Vector'返回来自一个通道的数值数据值的向量,以及时间值的向量(可选)。使用一个输出变量以仅返回数据,或使用两个输出变量以同时返回数据和时间向量。
'TimeSeries'返回来自一个通道的数据的时序。

示例: 'Vector'

数据类型: char | string

输出参数

全部折叠

通道数据,根据 'OutputFormat' 选项设置和通道组数量,以双精度值向量、时序、时间表或时间表元胞数组形式返回。

通道数据时间,以双精度值元素向量的形式返回。仅当 'OutputFormat' 设置为 'Vector' 时,才会返回时间向量。

在 R2016b 中推出