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
对象。