使用可变文件名将图像保存在循环中?

Posted

技术标签:

【中文标题】使用可变文件名将图像保存在循环中?【英文标题】:Save images in a loop with variable file names? 【发布时间】:2014-07-10 18:36:53 【问题描述】:

我有一个这样的循环:

for n = 1:6
figure
plot()
saveas(gcf,'figure', 'jpeg')
end

然而,这只是将数字相互保存,因为它们都具有相同的名称。我需要做的是让它的名字是'figure_n',其中n是循环的迭代。

【问题讨论】:

【参考方案1】:
for i=1:6
    % construct the filename for this loop - this would be `str1` in your example
    file_name = sprintf('picture_%i.jpeg', i);
    % or:
    file_name = strcat('picture_', num2str(i), '.jpeg');
    % call the function with this filename:
    saveas(gcf,'file_name','jpeg') 
end

希望这会有所帮助。

【讨论】:

我喜欢在sprintf 中使用 '%02i' 选项,因此文件编号为 01,02,... 而不是 1,2,... 如果您有超过 10 个文件,当您按文件名对文件夹进行排序时,它们会正确排序。【参考方案2】:

使用num2str

saveas(gcf, ['figure_' num2str(n) ], 'jpeg') ;

【讨论】:

简单有效!附带问题,我将如何更改那行代码以将所有图像保存到我桌面上的文件夹中? @user3145111 类似saveas(gcf, ['C:\path_to_folder_on_desktop\' 'figure_' num2str(n) ], 'jpeg') ;

以上是关于使用可变文件名将图像保存在循环中?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用循环插入噪声并将多个图像保存在不同的文件夹中?(matlab)

如何根据 R 中的原始文件名将包含多个数据帧的大列表保存为单个 csv

Foreach循环将特定文件移动到指定的文件夹中

从文件加载的 UIImage 部分是黑色的

将 Matlab 中循环的输出保存在不同的文件夹中

PIL 图像以错误的顺序保存(for 循环,枚举索引)