为什么MATLAB save()调用saveobj()两次?

时间:2011-07-13 10:28:16

标签: matlab save

我定义了一个MATLAB对象class_save_test:

classdef class_save_test 
    methods
        function b=saveobj(a)
            fprintf('saveobj called.\n');
            b=a;
        end
    end
end

当我尝试保存时:

j=class_save_test
save('delme1.mat','j')

我得到了输出

saveobj called.
saveobj called.

为什么要两次打电话?我发现thisthis人们有同样的问题,但没有答案:-(。我正在使用Matlab 7.11.0(R2010b)。

更新:我已向Mathworks提交了支持请求...请在下面找到答案: - )。

1 个答案:

答案 0 :(得分:8)

根据MathWorks技术支持:

  

我们当前的保存(pre-HDF5)MAT实现需要我们进行计算   实际保存数据之前磁盘上数据的大小和这个   让我们两次完成保存过程。这不会发生   采用HDF5格式。所以做save('delme1.mat','j','-v7.3')会   只显示一次消息。

我已将我的首选项(文件/首选项/常规/ MAT文件)更改为“MATLAB 7.3或更高版本”,所以现在save('keepme.mat','j')适用于我: - )。