我正在编写一个程序来循环绘制图形,我想保存每个图形,它是一个带有文件名变体的.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.
答案 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)
,然后查看结果。我怀疑你会在那里找到问题。您可以随时删除打印声明。