2014-10-18 148 views
4

我有一個800x6單元陣列vol,其第1到第5列是雙倍和第6列是一個200x200x200 3D雙重矩陣。我試圖更具體地將它保存到一個變量,一個.mat文件。MATLAB - 警告:變量'vol'不能保存到版本高於7.3的MAT文件?

>> save('./vol.mat', 'vol'); 
Warning: Variable 'vol' cannot be saved to a MAT-file whose version is older than 7.3. 
To save this variable, use the -v7.3 switch. 
Skipping... 

這是爲什麼?我應該如何解決它?

P.S .:我覺得很不情願將這個單元格數組保存爲文本文件,因爲這樣做會「破壞」結構。

+1

我發現了一些有趣的東西,涉及這[這裏](http://www.mathworks.com/matlabcentral/answers/15521-matlab-function-save-and-v7-3)。可以看出,這是因爲單元陣列的大小(> 2GB)。 – MeMyselfAndI 2014-10-18 15:13:17

+0

看到這個:[MATLAB:.mat版本之間的區別](http://stackoverflow.com/q/4950630/97160) – Amro 2014-10-18 15:35:14

回答

2

我想這是歸因於您使用的數據類型。剛剛嘗試錯誤消息表明什麼:

save('./vol.mat', 'vol', '-v7.3') 

版本的.MAT文件格式的7.3其實比默認的版本更新(「-v6」)。它有缺點,它缺乏與舊版matlab版本的向後兼容性,據說只能在64位系統上使用,據說是解決方案。除此之外,我認爲沒有理由不使用'-v7.3'

BTW,我覺得你可以剝去'./'.mat,因爲這些是默認值,所以

save('vol', 'vol', '-v7.3') 

也應努力(它這樣做,我在類似的情況)。

相關問題