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 属性设置为 tscollection,daqread 返回时间序列集合对象。有关详细信息,请参阅以下内容。
[data,time] = daqread(...) 返回时间/值对组。time 是长度与 data 相同的 m×1 向量,其中包含每个样本的相对时间。测量与出现的第一个触发器相关的相对时间。
[data,time,abstime] = daqread(...) 返回第一个触发器的绝对时间。abstime 以 clock 向量形式返回。
[data,time,abstime,events] = daqread(...) 返回事件日志。events 是一个包含事件信息的结构体。如果您指定 Samples、Time 或 Triggers 参数(请参见下面的内容),则事件结构体只包含指定的事件。
[data,time,abstime,events,daqinfo] = daqread(...) 返回包含以下两个字段的结构体 daqinfo:ObjInfo 和 HwInfo。ObjInfo 是一个包含属性名称/属性值对组的结构体,HwInfo 是一个包含硬件信息的结构体。整个事件日志返回到 daqinfo.ObjInfo.EventLog。
data = daqread(..., 使用以下参数指定返回的数据量和数据格式。'Param1', Val1,...)
参数 | 描述 |
|---|---|
| 指定样本范围。 |
| 指定相对时间范围。 |
| 指定触发器范围。 |
| 指定通道范围。通道名称可指定为元胞数组。 |
| 指定 |
| 指定 |
| 指定 |
Samples、Time 和 Triggers 属性互斥;也就是说,在一个函数调用中只能指定其中一个。
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始终包含整个事件日志,而不管Samples、Time或Triggers指定的值为何。在返回设备对象 (
ObjInfo) 信息时不恢复UserData属性值。读取
.daq文件时,daqread函数不返回指定为元胞数组的属性值。
返回的时间序列集合对象的详情
当 OutputFormat 设置为 tscollection 时,daqread 返回时间序列集合对象。该时间序列集合对象包含该文件中每个通道的绝对时间序列对象。下面介绍 daqread 如何设置该时间序列集合对象和时间序列对象的某些属性。
时间序列集合对象的
time属性设置为该文件中指定的InitialTriggerTime属性的值。每个时间序列对象的
name属性设置为该文件中通道的Name属性的值。如果该名称不能用作时间序列对象名称,则daqread将该名称设置为'Channel',并附加上通道的HwChannel属性。时间序列对象的
Units属性的值取决于DataFormat参数的值。如果DataFormat参数设置为'double',则daqread将集合中每个时间序列对象的DataInfo属性设置为该文件中对应通道的Units属性的值。如果DataFormat参数设置为'native',则daqread将Units属性设置为'native'。每个时间序列对象都将具有对应于与该通道关联的事件日志的附加
tsdata.event对象。