LoginSignup
11
5

More than 1 year has passed since last update.

【MATLAB】プログラム実行の度に、タイムスタンプあるいは手入力した結果フォルダを自動生成する

Last updated at Posted at 2021-04-05

はじめに

大規模あるいは大量のデータを用いて、様々なパラメータに対して異なる計算結果を出力プログラムでは、結果をどこにどうやって保存するか、といった問題があると思います。

私がこれまで行ってきたものは、事前に結果用のフォルダを作成し、そこに計算結果を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); 

他に良い方法があれば教えてください。

11
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
5