2016-10-06 6 views
1

図を生成するmatlabスクリプトを実行しています。これは私がスクリプトを実行するたびに、ファイル名を変更しない場合は、図filename.pngが上書きされるということである意味は何MATLAB:デフォルト名の図を保存

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

:私が使用してこの数字を保存します。図をデフォルトの名前に保存する方法はありますか? untitled.pngを作成し、スクリプトを2回実行すると、オリジナルのものを上書きするのではなく、新しい図形をuntitled(1).pngにしますか?

+0

でファイルを保存したくない場合は、入力引数(例ではpwd)が必要とされていますか?文字列= 'filenamexx.png'、次に 'print(arg1、arg2、arg3、string) 'を使ってください。 – obchardon

+0

ファイル名に何らかの情報を組み込むことを強くお勧めします。同じ名前のファイルの場合は、同じ情報を持つ必要があります。 '{filename.png、ファイル名(1).png、ファイル名(2).png、...、ファイル名(n).png} 'を調べることで、ファイルに含まれている内容を理解することは理想的ではありません。 – excaza

答えて

0

あなたはこのような何か試すことができます:あなたは、あなたのスクリプトを複数回実行したい場合は、単に(たとえばjjのためにその変数を宣言(あなたは「のために」を使用したくないので)

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+1; 

は、この変数を削除しないように注意してくださいと、あなたは新しいの名前を構成するjjの次の値を使用します。画像。 Thあるファイルが現在に配置されていない場合は、既存のファイルの数に基づいて、新たなファイル名を作成することができ、単にアイデア

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']) 

コマンド `print`前に文字列を作成していないなぜあなたはあなたのTEMPDIR

関連する問題