MATLAB保存图无效的文件名错误

时间:2013-11-22 19:07:05

标签: matlab plot save-as

我正在编写一个程序来循环绘制图形,我想保存每个图形,它是一个带有文件名变体的.jpg文件。这是我保存图表的代码:

filename = strcat('WI_Pollutants_', D(i,6), '_200706_O3');
saveas(gcf, filename, 'jpg'); 

保存的文件应如下所示,D(i,6)改变循环的每次迭代。

WI_Pollutants_003-0010_200706_O3.jpg

但是,我正在运行一个错误:(可能只需要saveas只需要一个字符串?)

Error using saveas (line 81)
Invalid filename.

2 个答案:

答案 0 :(得分:3)

saveas仅接受字符作为文件名。但是当filename创建时,strcat使它成为一个单元格数组。因此,需要将文件名转换为字符数组。

 filename = char(strcat('WI_Pollutants_', D(i,6), '_200706_O3'));
 saveas(gcf, filename, 'jpg'); 

这解决了这个问题。

答案 1 :(得分:0)

我认为你的D{i,6}最终会被包裹成一个数组,从这一行开始:

D{i,6} = [num2str(D{i,6}) '-' num2str(D{i,7})];

要解决此问题,只需删除[]的

即可
D{i,6} = num2str(D{i,6}) '-' num2str(D{i,7});

我认为发生的事情是你的D{i,6}=['someString'],并在[]中加入了不合适的内容。

作为一项检查,如果再次发生这样的事情,请在使用前立即fprintf(filename),然后查看结果。我怀疑你会在那里找到问题。您可以随时删除打印声明。