概述
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指定触发器范围。
Channels指定通道范围。通道名称可指定为元胞数组。
DataFormat指定 doubles(默认值)或 native 形式的数据格式。
TimeFormat指定 vector(默认值)或 matrix 形式的时间格式。
OutputFormat指定 matrix(默认值)或 tscollection 形式的输出格式。当指定 tscollection 时,daqread 仅返回 data。
Samples、Time 和 Triggers 属性互斥;即可同时定义 Samples、Triggers 或 Time。
daqinfo = daqread('filename','info') 从 daqinfo 结构体的文件中返回元数据,从文件中读取数据不会产生开销。daqinfo 结构体包含两个字段:
daqinfo.ObjInfo一个结构体,包含用于创建文件 filename 的数据采集对象的参数/值对组。注意:不会恢复 UserData 属性值。daqinfo.HwInfo一个包含硬件信息的结构体。整个事件日志返回到 daqinfo.ObjInfo.EventLog。
示例
使用 Data Acquisition Toolbox 采集数据。模拟输入对象 ai 为四个通道采集一秒的数据,并将数据保存到输出文件 data.daq。
ai = analoginput('nidaq','Dev1');
chans = addchannel(ai,0:3);
set(ai,'SampleRate',1000)
ActualRate = get(ai,'SampleRate');
set(ai,'SamplesPerTrigger, ActualRate)
set(ai,'LoggingMode','Disk&Memory')
set(ai,'LogFileName','data.daq')
start(ai)
在收集这些数据并将其保存至磁盘文件后,您可使用 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 文件详情
daqread 用于返回数据、相对时间、绝对时间和事件信息的格式与作为 Data Acquisition Toolbox 一部分的 getdata 函数使用的格式完全相同。有关详细信息,请参阅 Data Acquisition Toolbox 文档。
如果读取多个触发器中的数据,则生成的数据数组的大小会增加,增加数为发出的触发器的个数,因为每个触发器由 NaN 分隔。
ObjInfo.EventLog 始终包含整个事件日志,而不管 Samples、Time 或 Triggers 指定的值为何。
在返回设备对象 (ObjInfo) 信息时不恢复 UserData 属性值。
读取 .daq 文件时,daqread 函数不返回指定为元胞数组的属性值。
通过为 LogFileName 属性(或接受默认值)指定值并将 LoggingMode 属性配置为 Disk 或 Disk&Memory 来创建 Data Acquisition Toolbox (..daq) 文件。
返回的时序集合对象的详情
当 OutputFormat 设置为 tscollection 时,daqread 返回时序集合对象。该时序集合对象包含该文件中每个通道的绝对时序对象。下面介绍 daqread 如何设置该时序集合对象和时序对象的某些属性。
时序集合对象的 time 属性设置为该文件中指定的 InitialTriggerTime 属性的值。
每个时序对象的 name 属性设置为该文件中通道的 Name 属性的值。如果该名称不能用作时序对象名称,则 daqread 将该名称设置为 'Channel',并附加上通道的 HwChannel 属性。
时序对象的 Units 属性的值取决于 DataFormat 参数的值。如果 DataFormat 参数设置为 'double',则 daqread 将集合中每个时序对象的 DataInfo 属性设置为该文件中对应通道的 Units 属性的值。如果 DataFormat 参数设置为 'native',则 daqread 将 Units 属性设置为 'native'。有关这些属性的详细信息,请参阅 Data Acquisition Toolbox 文档。
每个时序对象都将具有对应于与该通道关联的事件日志的附加 tsdata.event 对象。
如果 daqread 返回多个触发器中的数据,则每个触发器中的数据由时序数据中的 NaN 分隔。这会将时序对象中的数据和时间向量的长度增加触发器数。
最后
以上就是积极灯泡为你收集整理的matlab daq,读取 Data Acquisition Toolbox (.daq) 文件 - MATLAB daqread - MathWorks 中国的全部内容,希望文章能够帮你解决matlab daq,读取 Data Acquisition Toolbox (.daq) 文件 - MATLAB daqread - MathWorks 中国所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复