我在 MATLAB 中编写了一个程序来生成具有不同规格的图像,但是每次我更改这些规格之一时,我都必须以不同的名称和路径重新保存图像。所以,我做了一个for循环来改变这些规范,但我不知道如何让MATLAB用不同的名称和不同的路径保存生成的图像......
如何编写程序让 MATLAB 保存多个生成的具有不同名称和不同路径的图像作为for
–loop 的一部分?
我在 MATLAB 中编写了一个程序来生成具有不同规格的图像,但是每次我更改这些规格之一时,我都必须以不同的名称和路径重新保存图像。所以,我做了一个for循环来改变这些规范,但我不知道如何让MATLAB用不同的名称和不同的路径保存生成的图像......
如何编写程序让 MATLAB 保存多个生成的具有不同名称和不同路径的图像作为for
–loop 的一部分?
在循环的末尾放置这样的内容:
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
如果您想保存 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
.
由于我想将循环中的图保存在当前工作目录 (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