我在matlab上制作了一个程序,用于生成不同规格的图像,但每次更改其中一个规格时,我都必须使用不同的名称和路径重新保存图像,所以我做了一个for循环来改变这些规格,但我不知道我不知道如何让matlab用不同的名字和不同的路径保存生成的图像 我如何编写一个程序来使matalb保存多个生成的图像,这些图像具有不同的名称和不同的路径作为for循环的一部分
答案 0 :(得分:4)
在你的循环结束时加上这样的东西:
for i = 1:n
<your loop code>
file_name=sprintf('%d.jpg',i); % assuming you are saving image as a .jpg
imwrite(your_image, file_name); % or something like this, however you choose to save your image
end
答案 1 :(得分:1)
如果您想保存JPEG,PNG等,请参阅@ AGS的帖子。如果要保存FIG文件,请使用
hgsave(gcf, file_name)
而不是imwrite
行。还有
print('-djpeg', file_name) %# for JPEG file (lossy)
print('-dpng', file_name) %# for PNG file (lossless)
作为imwrite
的替代方案。
答案 2 :(得分:0)
由于我想将循环中的图保存在我当前工作目录(pwd)的特定文件夹中,因此修改了我的命名例程,如下所示:
for s = 1:10
for i = 1:10
<loop commands>
end
end
% prints stimuli to folder created for them
file_name=sprintf('%s/eb_imgs/%0.3f.tif',pwd,s(i)); % pwd = path of present working
% directory and s(i) = the value
% of the changing variable
% that I wanted to document
file_name = /Users/Miriam/Documents/PSYC/eb_imgs/0.700.tif % how my filename appears
print('-dtiff', '-r300', file_name); % this saves my file to my desired location