3

Matlab内部に行列を含むセル配列を作成する関数があります。次のようになります。

>> ind

ind = 

    [10x3  double]
    [10x11 double]
    [ 1x11 double]

>> ind{1}

ans =

   -0.0407    0.1806    0.3175
   -0.1630   -0.0477    0.3487
   -0.1704   -0.0903    0.2375
    0.4861   -0.0547    0.3547
    0.4440    0.1793    0.3329
   -0.3888   -0.0768   -0.3908
   -0.0429    0.2418    0.6098
    0.0263   -0.3948   -0.2316
    0.3766    0.5255   -0.1580
   -0.4005   -0.2788   -0.4579

このセル配列をファイルに保存し、後でロードできるようにしたいと考えています。

これを行う最も速い方法はどれですか? 手でそれを避ける方法はありますか?

4

3 に答える 3

6

一般的な解決策は簡単です。

myvar = ind{1};
save myfilename myvar; 
load myfilename;

変数が指定されていない場合は、save/loadワークスペース/ファイル内のすべての変数を処理します。複数の特定の変数を保存/ロードできます。

save myfilename;
save myfilename myvar1;
save myfilename myvar2;
save myfilename myvar1 myvar2;

load myfilename;
load myfilename myvar1;
load myfilename myvar2;
load myfilename myvar1 myvar2;

ファイル内の変数は順不同で取得されるように名前が付けられているため、式の結果を保存することはできませんが、常に変数を通過する必要があります(答えのように)。

于 2012-06-12T15:06:14.677 に答える
4

組み込みの機能が最速かどうかはわかりませんsaveが、より良い提案が得られるまで使用しないでください。

于 2012-06-12T15:05:44.760 に答える
1

また、保存するファイルの種類によっても異なります。.xls (Excel) ファイルに保存する場合は、xlswrite() 関数を使用できます。以下は、xlswrite() 関数のドキュメントから抜粋したものです。

xlswrite(filename,A,sheet,range) は、指定されたシートと範囲に書き込みます。構文 'C1:C2' を使用して範囲を指定します。ここで、C1 と C2 は領域を定義する 2 つの対角です。

これが役に立てば幸いですが、ルカの答えにも同意します。

于 2012-06-13T13:29:52.067 に答える