はじめに
大規模あるいは大量のデータを用いて、様々なパラメータに対して異なる計算結果を出力プログラムでは、結果をどこにどうやって保存するか、といった問題があると思います。
私がこれまで行ってきたものは、事前に結果用のフォルダを作成し、そこに計算結果をmatファイルなどで出力するやり方です。しかし、このフォルダの名前を毎回入力するのは面倒なときもありますし、一方で「この実行は〇〇というパラメータをXXにしたから… ”〇〇_XX”というフォルダ名で実行したい」といった趣旨でフォルダ名を付けたいこともあるかと思います。今回紹介するのは、そのどちらにも対応できるようになっているフォルダ生成コードです。
コード
result (自動生成)
├ 入力したフォルダ名(入力が無ければ"yyyymmdd_HHMMSS")
コード
% 現在時刻 now を 西暦4桁XX月XX日_XX時XX分XX秒の形で取得
sNowTime=datestr(now,'yyyymmdd_HHMMSS');   
% 手入力を促す画面
prompt=sprintf('Type resultfoldername(empty:"%s"):',sNowTime); 
nameFolder=input(prompt,'s');
% 入力があれば入力された文字、入力が無ければタイムスタンプをフォルダ名にする
if isempty(nameFolder)
    str=  sNowTime; 
else
    str=  nameFolder; 
end
% フォルダのパス生成
resPath=fullfile(pwd,'/result/',str,'/'); 
% フォルダ生成
mkdir(resPath); 
フォルダのパスresPath を残しておけば、計算結果を出力する際にそのまま使えます。
計算結果の出力例
fileName=fullfile(resPath,'result.mat'); 
save(fileName); 
他に良い方法があれば教えてください。
