【发布时间】:2016-10-02 13:56:24
【问题描述】:
假设我有一个 for 循环,并且想在每次迭代时保存一个带有迭代名称的 mat 文件。我做了如下,但它不起作用。
clc;
clear;
for i=1:3
filename=num2str(i);
save(filename,'.mat')
end
【问题讨论】:
假设我有一个 for 循环,并且想在每次迭代时保存一个带有迭代名称的 mat 文件。我做了如下,但它不起作用。
clc;
clear;
for i=1:3
filename=num2str(i);
save(filename,'.mat')
end
【问题讨论】:
save 的第一个输入必须是字符串,您将 两个 输入传递给 save(filename 和 '.mat')。 save 无法自动将您的文件名与您提供的 .mat 扩展名组合在一起,而是最终寻找一个名为 '.mat' 的变量,这显然会导致错误。
您希望将这两个字符串连接成一个字符串(使用[] 或strcat)并将其作为第一个输入传递给save。
save([filename, '.mat'])
或者,您可以只提供filename,因为假设filename 还没有扩展名,则会自动附加.mat 扩展名。就个人而言,我不是特别喜欢这种方法,因为我在文件名中使用了.,但如果你不这样做,这可能会奏效。
save(filename)
【讨论】: