Main Content

daqread

读取 Data Acquisition Toolbox (.daq) 文件

语法

data = daqread('filename')
[data,time] = daqread(...)
[data,time,abstime] = daqread(...)
[data,time,abstime,events] = daqread(...)
[data,time,abstime,events,daqinfo] = daqread(...)
data = daqread(...,'Param1', Val1,...)
daqinfo = daqread('filename','info')

说明

data = daqread('filename')filename 指定的 Data Acquisition Toolbox™ (.daq) 文件读取所有数据。daqread 返回 data,这是一个 m×n 数据矩阵,其中 m 是样本数,n 是通道数。如果 data 包括多个触发器的数据,则每个触发器中的数据由 NaN 分隔。如果将 OutputFormat 属性设置为 tscollectiondaqread 返回时间序列集合对象。有关详细信息,请参阅以下内容。

[data,time] = daqread(...) 返回时间/值对组。time 是长度与 data 相同的 m×1 向量,其中包含每个样本的相对时间。测量与出现的第一个触发器相关的相对时间。

[data,time,abstime] = daqread(...) 返回第一个触发器的绝对时间。abstimeclock 向量形式返回。

[data,time,abstime,events] = daqread(...) 返回事件日志。events 是一个包含事件信息的结构体。如果您指定 SamplesTimeTriggers 参数(请参见下面的内容),则事件结构体只包含指定的事件。

[data,time,abstime,events,daqinfo] = daqread(...) 返回包含以下两个字段的结构体 daqinfoObjInfoHwInfoObjInfo 是一个包含属性名称/属性值对组的结构体,HwInfo 是一个包含硬件信息的结构体。整个事件日志返回到 daqinfo.ObjInfo.EventLog

data = daqread(...,'Param1', Val1,...) 使用以下参数指定返回的数据量和数据格式。

参数

描述

Samples

指定样本范围。

Time

指定相对时间范围。

Triggers

指定触发器范围。

Channels

指定通道范围。通道名称可指定为元胞数组。

DataFormat

指定 doubles(默认值)或 native 形式的数据格式。

TimeFormat

指定 vector(默认值)或 matrix 形式的时间格式。

OutputFormat

指定 matrix(默认值)或 tscollection 形式的输出格式。当指定 tscollection 时,daqread 仅返回 data

SamplesTimeTriggers 属性互斥;也就是说,在一个函数调用中只能指定其中一个。

daqinfo = daqread('filename','info')daqinfo 结构体的文件中返回元数据,从文件中读取数据不会产生开销。daqinfo 结构体包含两个字段:

daqinfo.ObjInfo

一个结构体,包含用于创建文件 filename 的数据采集对象的参数/值对组。注意:不会恢复 UserData 属性值。

daqinfo.HwInfo

一个包含硬件信息的结构体。整个事件日志返回到 daqinfo.ObjInfo.EventLog

示例

此示例说明如何读取在以前的版本中保存到日志文件 data.daq 中的数据。此记录是通过指定 analoginput 对象的记录属性实现的。使用 daqread 来检索数据和其他采集相关的信息。

data.daq 读取所有样本时间对组:

[data,time] = daqread('data.daq');

data.daq 读取所有通道的 500 至 1000 个样本:

data = daqread('data.daq','Samples',[500 1000]);

从文件 data.daq 以本机格式读取通道索引 2、4 和 7 的仅 1000 至 2000 个样本:

data = daqread('data.daq', 'Samples', [1000 2000],...
               'Channels', [2 4 7], 'DataFormat', 'native');

从文件 data.daq 仅读取表示所有通道上的第一个和第二个触发器的数据:

[data,time] = daqread('data.daq', 'Triggers', [1 2]);

data.daq 获取通道属性信息:

daqinfo = daqread('data.daq','info');
chaninfo = daqinfo.ObjInfo.Channel;

获取 data.daq 包含的事件类型和事件数据列表:

daqinfo = daqread('data.daq','info');
events = daqinfo.ObjInfo.EventLog;
event_type = {events.Type};
event_data = {events.Data};

从文件 data.daq 读取所有数据并作为时间序列集合对象返回这些数据:

data = daqread('data.daq','OutputFormat','tscollection');

提示

.daq 文件详情

  • 如果读取多个触发器中的数据,则生成的数据数组的大小会增加,增加数为发出的触发器的个数,因为每个触发器由 NaN 分隔。

  • ObjInfo.EventLog 始终包含整个事件日志,而不管 SamplesTimeTriggers 指定的值为何。

  • 在返回设备对象 (ObjInfo) 信息时不恢复 UserData 属性值。

  • 读取 .daq 文件时,daqread 函数不返回指定为元胞数组的属性值。

返回的时间序列集合对象的详情

OutputFormat 设置为 tscollection 时,daqread 返回时间序列集合对象。该时间序列集合对象包含该文件中每个通道的绝对时间序列对象。下面介绍 daqread 如何设置该时间序列集合对象和时间序列对象的某些属性。

  • 时间序列集合对象的 time 属性设置为该文件中指定的 InitialTriggerTime 属性的值。

  • 每个时间序列对象的 name 属性设置为该文件中通道的 Name 属性的值。如果该名称不能用作时间序列对象名称,则 daqread 将该名称设置为 'Channel',并附加上通道的 HwChannel 属性。

  • 时间序列对象的 Units 属性的值取决于 DataFormat 参数的值。如果 DataFormat 参数设置为 'double',则 daqread 将集合中每个时间序列对象的 DataInfo 属性设置为该文件中对应通道的 Units 属性的值。如果 DataFormat 参数设置为 'native',则 daqreadUnits 属性设置为 'native'

  • 每个时间序列对象都将具有对应于与该通道关联的事件日志的附加 tsdata.event 对象。

另请参阅

|