2

我在 MATLAB 中编写了一个程序来生成具有不同规格的图像,但是每次我更改这些规格之一时,我都必须以不同的名称和路径重新保存图像。所以,我做了一个for循环来改变这些规范,但我不知道如何让MATLAB用不同的名称和不同的路径保存生成的图像......

如何编写程序让 MATLAB 保存多个生成的具有不同名称和不同路径的图像作为for–loop 的一部分?

4

3 回答 3

5

在循环的末尾放置这样的内容:

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
于 2012-08-25T21:36:31.677 回答
2

如果您想保存 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.

于 2012-08-25T22:29:38.237 回答
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

于 2013-12-13T18:25:43.370 回答