2011-07-13 8 views
10

私はMATLABオブジェクトclass_save_test定義:私はそれを保存しようとするとMATLAB save()がsaveobj()を2回呼び出すのはなぜですか?

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') 

それが2回呼び出され、なぜ私は、出力

saveobj called. 
saveobj called. 

を取得しますか?私はthisと人が同じ疑問を持っていたthisを発見したが、何の答え:-(私はMatlabの7.11.0(R2010b)を使用していないよ

更新:。。私はMathworks社とのサポート要求を提出した .. 。以下の答えを見つける:-)。 MathWorks社のテクニカルサポートによると

答えて

8

我々の現在のセーブ(前HDF5)MATの実装が実際にデータを保存する前に、ディスク上のデータの サイズを計算するために私たちを必要とし、この 私たちはどこへ行く原因保存プロセスを2回実行します。 HDF5形式の は発生しません。したがって、save('delme1.mat','j','-v7.3')を実行すると、 メッセージが1回だけ表示されます。

私は自分の環境設定(ファイル/環境設定/一般/ MATファイル)を "MATLABバージョン7.3以降"に変更しましたので、save('keepme.mat','j')は私のために働きます:-)。

関連する問題