MATLAB:使用默认名称

时间:2016-10-06 14:56:34

标签: matlab image-processing

我正在运行一个生成图形的matlab脚本。为了保存这个数字,我使用:

print(h_f,'-dpng','-r600','filename.png')

这意味着如果我每次运行脚本时都没有更改文件名,则会覆盖图文件名.png。 有没有办法将数字保存为默认名称,例如untitled.png,然后当脚本运行两次时,它会使一个新的数字无标题(1).png而不是覆盖原始的?

2 个答案:

答案 0 :(得分:1)

您可以根据现有文件的数量

创建新的文件名
defaultName = 'untitled';
fileName = sprintf('%s_%d.png', defaultName, ...
   length(dir([defaultName '_*.png'])));

print(h_f,'-dpng','-r600', fileName)

如果文件不在您当前的工作目录中,请在dir搜索路径中添加文件夹路径。

这将创建一个0索引文件名列表

untitled_0.png
untitled_1.png
untitled_2.png
untitled_3.png
...

您还可以使用tempname为每次迭代生成一个长随机名称。大多数情况下都是唯一的,请参阅Limitations部分。

print(h_f,'-dpng','-r600', [tempname(pwd) '.png'])

如果您不想在pwd

中保存文件,则需要输入参数(示例中为TEMPDIR

答案 1 :(得分:0)

您可以尝试这样的事情:

for jj=1:N
   name_image=sscanf('filename','%s') ;
   ext=sscanf('.png','%s') ;


   %%do your stuff


   filename=strcat(name_image,num2str(jj),ext);

   print(h_f,'-dpng','-r600',filename)


end

如果你想多次执行你的脚本(因为你不想使用" for")只是声明一个变量(例如jj,它将在脚本的结尾:

jj=jj+1;

小心不要删除此变量,当您重新开始编写脚本时,您将使用下一个jj值来组成新图像的名称。 这只是一个想法