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 是定义区域的两个相对角。

希望这会有所帮助,但我也同意卢卡的回答。

于 2012-06-13T13:29:52.067 回答