进行数据采集的话,很多人都选择使用NI设备,NI数据保存自带的格式是TDMS格式。而我们后续数据处理一般使用matlab,尴尬的是matlab不能像读取txt或者xls格式文档一样去直接读取TDMS格式的文档,这就需要“动点手脚”啦。就这点问题我鼓捣了两天,最后是解决了,但是差点被自己蠢哭了...
我现在用的matlab版本是2015a 64位。首先到NI官网上查解决方案;一字一句仔细阅读后就按照说明一步步操作,运行的时候出现以下报错Index exceeds matrix dimensions
,直接谷歌,发现搜不到什么有用的结果,就那下面具体的报错信息Error in loadlibrary>getLoadlibraryCompilerConfiguration (line 527)
进行搜索,解决方案在这里。发现真正能解决问题的答案绝对来自英文网站,不是崇洋媚外哈,这是事实,言归正传,答案大体上就是说去一个编译器(compiler)。matlab版本不同,对应的编译器也不同,从这个网站可以找到不同版本matlab对应的编译器。找到了对应的编译器就下载呗,下载后安装的过程中出现下面的bugError using loadlibrary (line 447) There was an error loading the library
,我去,继续debug呗,又是各种谷歌,解决方案说是缺少dll文件,好吧,下了一个检测缺失dll文件的Dependency walker。检测一下,缺了5个dll,哎,下呗,把缺失的dll文件补全,这回总该可以了吧,运行一下,终于可以了,没有报错,但是,我的数据呢?给个隐式err = -6206,愣是没有数据,心中数万只草泥马飞过...
后来想起来,貌似在哪里看到过,matlab版本有很大的影响,算了,死马当活马医了吧,装了个32位的2014版本,运行一下,我去,华丽丽的数据图就这样呈现在了我的面前...
最后提一点技术性的东西,在重新装好了32位版本的matlab后,在NI官网给的readTDMSFile.m里面改两处内容即可,把dllfolder和hfolder换成你存放nilibddc.c和nilibddc_m.h的地址便大功告成了。