使用Matlab保存功能迭代地将变量保存到文件

时间:2012-12-13 11:29:16

标签: matlab file-io

我将数组的内容保存到不同的文件中,如下所示:

for i=1:10
name = [myfilename num2str(i)] 
savevar = myvariable(i)
filename = mat2str([name '.dat'])
save(filename, savevar, '-ascii','-double','-append')
end

我一直在摆弄这一段时间并继续收到以下错误:

??? Error using ==> save
Argument must contain a string.

我哪里错了?

1 个答案:

答案 0 :(得分:6)

save命令的参数必须是字符串。具体来说,第二个参数必须是包含变量名称的字符串。

您的案例中的问题是savevar是变量的实际值,而不是其名称。

我并没有真正得到你想要保存的变量类型。如果它是一个矩阵,你最好将它作为一个整体保存到一个文件中,如下所示:

save(filename, 'myvariable', '-ascii', '-double', '-append')

如果你有很多变量,并且你希望每个变量都在一个不同的文件中(这比你的例子更接近),我建议你创建一个变量名的单元格数组:

varname = {'A', 'B', 'C', ...}  % # Assuming A, B, C, etc. are actual variables

然后在循环内的save命令中使用它:

save(filename, varname{i}, '-ascii', '-double', '-append')