MATLAB: How to change the folder path in FOPEN for creating .dat file

.dat filefopen

i got an example code, but i dont understand how the path works.
  1. fid= fopen(['.\result\norm\' algo '\' ActFunc_Hid '_' ActFunc_Out '\NOUT' num2str(nout) '.dat'], 'a'); %folder path
  2. fprintf(fid, '\n \n');
  3. fprintf(fid, '%s \n',algo);
  4. fprintf(fid, '%s %s \n',ActFunc_Hid,ActFunc_Out);
  5. fprintf(fid, '%s %s %s %s %s %s \n','nhid','repeat','TrainAcc','ValAcc','TestAcc','time');
assume algo: algorithm, ActFunc_Hid : hidden layer active function, ActFunc_Out : output layer active function, NOUT : neuron output, nhid is hidden neuron, etc
For 1, why does it start with a '.\' and what does those '_' and '\' in between mean?
Question: How to change the folder path?

Best Answer

Replace the first line with:
folder = fullfile('result', 'norm', algo, [ActFunc_Hid '_' ActFunct_Out]);
if ~exist(folder, 'dir')
mkdir(folder);
end
filename = fullfile(folder, sprintf('NOUT%g.dat',nout));
fid = fopen(filename, 'a');
why does it start with a '.\'
In MS Windows, that means that you want to refer to something within the current folder.
and what does those '_' and '\' in between mean
The '_' is not special: it is just a literal underscore, used to separate the Hid value from the Out value so that they are easy to read and do not run together.
In MS Windows, the '\' is a directory seperator character, marking the end of a previous subdirectory name. After a '\' there can be another subdirectory name, but the last part can instead be a file name.
MacOS and Linux use '/' instead of '\', and it turns out that MS Windows can use '/' as well.
fullfile() knows how to use '\' or '/' as appropriate for the operating system being executed on.