我正在运行一个产生图形的matlab脚本。要保存这个数字我用:MATLAB:使用默认名称保存图形
print(h_f,'-dpng','-r600','filename.png')
这意味着,如果我不每次我运行脚本时间更改文件名,这个数字filename.png将被覆盖。 有没有办法将图保存为默认名称,例如untitled.png,然后当脚本运行两次时,它会创建一个新图而不是覆盖最初的那个图标(1).png。
我正在运行一个产生图形的matlab脚本。要保存这个数字我用:MATLAB:使用默认名称保存图形
print(h_f,'-dpng','-r600','filename.png')
这意味着,如果我不每次我运行脚本时间更改文件名,这个数字filename.png将被覆盖。 有没有办法将图保存为默认名称,例如untitled.png,然后当脚本运行两次时,它会创建一个新图而不是覆盖最初的那个图标(1).png。
你可以尝试这样的事情:
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
如果要执行脚本的多个时间(因为你不希望使用“为”)只是声明一个变量(例如jj
这将在脚本的末尾递增:
jj=jj+1;
要小心,不要删除此变量,当你重新开始你的脚本,您将使用的jj
下一个值组成新的名称image。 Th是仅仅是一个想法
您可以创建基于现有文件的数量
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'])
,如果你不希望将文件保存在您的TEMPDIR
为什么不创建命令之前的字符串'print'需要输入参数(
pwd
中的例子)?使用string ='filenamexx.png'然后输入'print(arg1,arg2,arg3,string)' – obchardon我强烈建议在文件名中加入一些信息,以便用户识别图像中包含的内容。如果一个文件具有相同的名称,它应该有相同的信息。必须筛选'{filename.png,文件名(1).png,文件名(2).png,...,文件名(n).png}'来确定文件中包含的内容并不理想。 – excaza