2014-10-18 1 views
4

У меня есть ячейка 800x6vol, чьи 1-й и 5-й столбцы - это двойной и 6-й столбец, это 3D-матрица размером 200x200x200. Я пытаюсь сохранить его в переменной, файле .mat более конкретно.MATLAB - Предупреждение: переменная 'vol' не может быть сохранена в MAT-файле, версия которого старше 7.3?

>> 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). Видимо, это из-за размера массива ячеек (> 2 ГБ). – MeMyselfAndI

+0

см. Это: [MATLAB: Различия между версиями .mat] (http://stackoverflow.com/q/4950630/97160) – Amro

ответ

2

Я предполагаю, что это относится к типу данных, который вы используете. Просто попробуйте, что предлагает сообщение об ошибке:

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

версии 7.3 формат файла .mat фактически новее версии по умолчанию («-v6»). У этого есть недостаток, что он не имеет обратной совместимости с очень старыми версиями matlab, как говорят, доступен только на 64-битных системах и, как говорят, является solw. Кроме того, я не вижу причин не использовать '-v7.3'.

Кстати, я думаю, что вы можете обирать './' и .mat, поскольку это по умолчанию, так

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

также должен работать (он делает это для меня в подобной ситуации).