2012-06-12 237 views
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 

我希望能够到这个单元阵列保存到一个文件,之后加载它。

这是最快的方法吗? 有没有办法避免手工操作?

+0

编码它的最快方法是使用保存和加载命令。或者你在寻找更快的执行时间? – mars

+0

@mars:代码最快的方法。 '保存文件名var;'做了诀窍。谢谢。 – Macarse

回答

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; 

由于在文件中变量的命名所以被检索出的顺序,你不能保存一个表达式的结果,但必须通过一个变量(如答案一样)。

+0

这完美。我在等待的10分钟的时间来接受一个答案。 – Macarse

4

我不知道内置函数save是否是最快的方法,但为什么不使用它直到获得更好的建议?

+0

我不知道我可以用'save'保存一个var。对不起,我仍然是一个'Matlab'新手:( – Macarse

+3

没有后顾之忧,我们所有人都必须学会在某种程度上有时。 –

1

也可以取决于要保存到的文件类型。如果您想将其保存为.xls(Excel)文件,则可以使用xlswrite()函数。从文档拉为xlswrite()函数如下:

xlswrite(文件名,A,片材,范围)写入到指定的片材和范围。使用语法'C1:C2'来指定范围,其中C1和C2是定义该区域的两个对角。

希望这可以帮助,但我也同意卢卡的答案。