進(jìn)行數(shù)據(jù)采集的話蛛勉,很多人都選擇使用NI設(shè)備,NI數(shù)據(jù)保存自帶的格式是TDMS格式毡熏。而我們后續(xù)數(shù)據(jù)處理一般使用matlab侣诵,尷尬的是matlab不能像讀取txt或者xls格式文檔一樣去直接讀取TDMS格式的文檔,這就需要“動點手腳”啦疯暑。就這點問題我鼓搗了兩天妇拯,最后是解決了洗鸵,但是差點被自己蠢哭了...
我現(xiàn)在用的matlab版本是2015a 64位。首先到NI官網(wǎng)上查解決方案膘滨;一字一句仔細(xì)閱讀后就按照說明一步步操作火邓,運(yùn)行的時候出現(xiàn)以下報錯Index exceeds matrix dimensions
,直接谷歌躲胳,發(fā)現(xiàn)搜不到什么有用的結(jié)果纤勒,就那下面具體的報錯信息Error in loadlibrary>getLoadlibraryCompilerConfiguration (line 527)
進(jìn)行搜索,解決方案在這里粹湃。發(fā)現(xiàn)真正能解決問題的答案絕對來自英文網(wǎng)站为鳄,不是崇洋媚外哈济赎,這是事實,言歸正傳司训,答案大體上就是說去一個編譯器(compiler)液南。matlab版本不同,對應(yīng)的編譯器也不同统扳,從這個網(wǎng)站可以找到不同版本matlab對應(yīng)的編譯器咒钟。找到了對應(yīng)的編譯器就下載唄若未,下載后安裝的過程中出現(xiàn)下面的bugError using loadlibrary (line 447) There was an error loading the library
,我去粗合,繼續(xù)debug唄,又是各種谷歌壤追,解決方案說是缺少dll文件供屉,好吧伶丐,下了一個檢測缺失dll文件的Dependency walker。檢測一下贿堰,缺了5個dll羹与,哎庶灿,下唄,把缺失的dll文件補(bǔ)全腾誉,這回總該可以了吧,運(yùn)行一下趣效,終于可以了猪贪,沒有報錯热押,但是,我的數(shù)據(jù)呢桶癣?給個隱式err = -6206,愣是沒有數(shù)據(jù)牙寞,心中數(shù)萬只草泥馬飛過...
后來想起來饺鹃,貌似在哪里看到過,matlab版本有很大的影響碎税,算了尤慰,死馬當(dāng)活馬醫(yī)了吧,裝了個32位的2014版本雷蹂,運(yùn)行一下伟端,我去,華麗麗的數(shù)據(jù)圖就這樣呈現(xiàn)在了我的面前...
最后提一點技術(shù)性的東西匪煌,在重新裝好了32位版本的matlab后责蝠,在NI官網(wǎng)給的readTDMSFile.m里面改兩處內(nèi)容即可,把dllfolder和hfolder換成你存放nilibddc.c和nilibddc_m.h的地址便大功告成了萎庭。