dirMake

Set and make directories for output.

Warning: This function creates a directory and a file.

Contents

Syntax

seti = dirMake(seti,usevaralpha,usevarbeta,usevardelta,usevartol)

Description

seti = dirMake(seti,usevaralpha,usevarbeta,usevardelta,usevartol)

Input Arguments

seti : structural array

The following fields can be set by user (otherwise set default values):

See setInput.html for the following fields (they can be defined by user too):

Output Arguments

Several fields in seti, if they was not set as input argument; see above.

See Also

Code

function seti = dirMake(seti,usevaralpha,usevarbeta,usevardelta,usevartol)

dirOutput

seti = checkfield(seti,'dirOutput','output');

if exist(seti.dirOutput,'dir')~=7
    fprintf('Make dir: %s.\n',seti.dirOutput)
    mkdir(seti.dirOutput);
end

dirDatetime

Format of date and time is yyyymmddTHHMMSS, e.g. 20160815T140912 Note: Maybe it was set before in varalpha, varbeta or vardelta.

seti = checkfield(seti,'dirDatetime',datestr(now,'yyyymmddTHHMMSS'));

inseti

inseti is seti.inseti

dirSuffix

seti = checkfield(seti,'dirSuffix','');
% (Idea: a prefix could be used too.)

Additional Suffixes (dirSuffixAdd)

Additional suffixes are set automatically and added to dirname for special cases.

seti.dirSuffixAdd = '';

Various input

if usevaralpha == 1
    seti.dirSuffixAdd = strcat(seti.dirSuffixAdd,'_varalpha');
end
if usevarbeta == 1
    seti.dirSuffixAdd = strcat(seti.dirSuffixAdd,'_varbeta');
end
if usevardelta == 1
    seti.dirSuffixAdd = strcat(seti.dirSuffixAdd,'_delta');
end
if usevartol == 1
    seti.dirSuffixAdd = strcat(seti.dirSuffixAdd,'_tol');
end

Label of special cases

if isfield(seti,'gscale') && seti.gscale == 1
    seti.dirSuffixAdd = strcat(seti.dirSuffixAdd,'_gscale');
end

if isfield(seti,'expData')
    if strcmp(seti.expData,'fresnel')
        seti.dirSuffixAdd = strcat(seti.dirSuffixAdd,'_fresnel');
    elseif strcmp(seti.expData,'simonetti')
        seti.dirSuffixAdd = strcat(seti.dirSuffixAdd,'_simonetti');
    else
       error('seti.expData not found... ?!? (Neither Fresnel nor Simonetti.)');
    end
end

Set the final dirname

if isempty(seti.inseti)
    insetiDirName = sprintf('_noinseti');
else
    insetiDirName = sprintf('_%s',seti.inseti);
end
dirnameDefault = sprintf('%s/%s%s%s%s',...
    seti.dirOutput,seti.dirDatetime,insetiDirName,seti.dirSuffix,seti.dirSuffixAdd);
clear insetiDirName;
seti = checkfield(seti,'dirname',dirnameDefault);
clear dirnameDefault;

Make directory for output data of current computation

if exist(seti.dirname,'dir')~=7
    fprintf('Make dir: %s.\n',seti.dirname)
    mkdir(seti.dirname);
end

Copy used inseti data in output folder

if ~isempty(seti.inseti)
    src = which(seti.inseti); % source
    des = sprintf('%s/inseti_%s.m',seti.dirname,seti.inseti); % destination
    copyfile(src,des);
    clear src des;
end
end