使用save时出错无法写入文件

时间:2014-03-05 08:28:25

标签: matlab windows-7 save

我在matlab中遇到了这个非常奇怪的错误。当我尝试运行命令

save(fullfile('filepath','filename'),'var','-v7');

我收到错误消息

error using save can't write file

但是当我尝试

save(fullfile('filepath','filename'),'var','-v7.3');
一切正常。该变量在工作区占用一些空间,165MB,但我猜这个大小不应该是一个问题。有谁知道为什么它不能保存在v7

对于想要确认变量大小的人,我将添加whos信息,

Name      Size                Bytes  Class     Attributes
myName    1x1             173081921  struct              

BR / Patrik

修改

我尝试保存的变量是一个包含大量字段的结构。我试图保存一个大小为800 mb的3维矩阵,它没有遇到任何问题。

1 个答案:

答案 0 :(得分:0)

这与您的问题不完全匹配,但在尝试保存为-v6格式时收到了相同的错误消息。当不支持变量类型或大小时,Matlab应该发出错误:

help save
...
If any data items require features that the specified version does not support, MATLAB does not save those items and issues a warning. You cannot specify a version later than your version of MATLAB software.

Matlab的错误检查似乎并不完美,因为某些情况(依赖于Matlab版本和特定的变量类型)只是失败了所有错误消息:

Error using save
Can't write file filename.mat.

例如,在Linux中使用Matlab r2015b中的'-v6'选项保存带有某些unicode字符的字符串会产生错误,但Windows中的Matlab r2016a却没有。这是我的Matlab r2015b会话的输出:

>> A=char(double(65533))
A =
?
>> save('filename.mat','-v6','A')
Error using save
Can't write file filename.mat. 

如果没有要测试的特定变量,但看到错误消息匹配,我建议删除部分数据结构,直到它将保存以隔离导致其失败的变量。