前言

前言

用Labview采集数据存储的格式是tdms格式,如何用Matlab读取数据做进一步的处理?

常见的有两种方法

1.使用Matlab提供的ConventTDMS函数,使用简单,但部分数据类型不适用;

2.下载NI官方提供的MATLAB TDM Example函数包,需要配置环境,步骤麻烦一点。


一、方法1:ConventTDMS函数

在Matlab官网下载程序包ConvertTDMS (v10) - File Exchange - MATLAB Central

然后调用里面的convertTDMS.m函数即可

% 输入参数1:0-结构体,1-mat格式
% 输入参数2:要读取的tdms文件,主要要和代码放在同一目录下
data=convertTDMS(0,'filename.tdms'); %读取TDMS文件

但是这种方法不适用于DAQmxRaw NI数据类型格式的数据

出现如下报错:

那么可以考虑第二种方法。


二、方法2:MATLAB TDM Example函数包

1.下载函数包

NI官网下架了,网盘自取

链接: https://pan.baidu.com/s/1SjbWqHhceTm3et8egZka5Q?pwd=s59h 提取码: s59h

2.配置环境

(1)打开应用程序tdm64-gcc-9.2.0.exe,选create

(2)选第二个环境--Next

(3)记住安装路径,Next

(4)全部勾选上,Install

耐心等待安装就可以了,建议科学上网会更快,因为好像要调用github上的一些包

3.添加路径

打开电脑高级系统设置-高级-环境变量

新建系统变量

变量名随意,变量值为刚刚安装的路径

在cmd种检查一下,输入 gcc --version,出现对应的版本号就安装成功了🎉

4.代码使用

打开网盘里另一个文件夹中的MATLAB TDM Example-sample→64-bit→ReadFile.m

修改两处的代码

(1)添加默认的.dll和.h文件路径

.dll文件在MATLAB TDM Example-sample→dev→bin→64-bit→nilibddc.dll

.h文件在MATLAB TDM Example-sample→dev→include→64-bit→nilibddc_m.h

下面代码放上这两个文件的绝对路径

% 直接定义外部dll和h文件的绝对路径
libname = 'nilibddc';
NI_TDM_DLL_Path = 'C:\Users\19046\Desktop\matlab tdms\matlab_tdm_example_sp2010\matlab_tdm_example_sp2010\MATLAB TDM Example\dev\bin\64-bit\nilibddc.dll';
NI_TDM_H_Path = 'C:\Users\19046\Desktop\matlab tdms\matlab_tdm_example_sp2010\matlab_tdm_example_sp2010\MATLAB TDM Example\dev\include\64-bit\nilibddc_m.h';

(2)代码注释

代码最后面,把clear这行注释掉

    %Plot Data from channels in this group
    plot(chanvals);
    %%clear chanvals;  %% 把这行代码注释掉
    legend(channames);

(3)运行代码

运行ReadFile.m,选择要处理的.tdms或.tdm格式的文件,就能看到自动绘制的所读数据的图像,工作区里的chanvals变量就是读到的数据

例如:打开范例文件SineData.tdm,显示数据图像如下:


参考博客

用Matlab处理TDMS数据(降噪+频谱分析)_tdms文件怎么打开-CSDN博客

tdm-gcc 的下载、安装教程【超详细】-CSDN博客

Matlab查看tdms文件_matlab tdm example-CSDN博客

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐