- https://de.mathworks.com/matlabcentral/fileexchange/10959-sort-nat--natural-order-sort
- https://www.mathworks.com/matlabcentral/fileexchange/34464-customizable-natural-order-sort
I want to save a mat. file each time the program runs with a different name.
    4 views (last 30 days)
  
       Show older comments
    
for example, when I run program for the first time i want to save it as ' text1.mat' second time 'text2.mat' etc...
0 Comments
Accepted Answer
  Jan
      
      
 on 28 Nov 2017
        
      Edited: Jan
      
      
 on 28 Nov 2017
  
      Folder   = tempdir;   % Define accordingly
FileList = dir(fullfile(Folder, 'text*.mat'));
NewFile  = fullfile(Folder, sprintf('text%d.mat', numel(FileList) + 1));
This fails, if you delete some of the files afterwards. Then this helps:
NameList  = natsort({FileList.name});
LastIndex = sscanf(NameList{end}, 'text%d.mat'));
NewFile   = fullfile(Folder, sprintf('text%d.mat', LastIndex + 1));
Or prefer:
nowStr  = datestr(now, 'yyyy-mm-dd_HHMMSS');
NewFile = fullfile(Folder, ['text', nowStr, '.mat']);
But remember that this fails, if you create more than 1 file per second or during the change of the daylight-saving-time.
2 Comments
  Walter Roberson
      
      
 on 28 Nov 2017
				NameList  = natsort({FileList.name});
LastIndex = sscanf(NameList{end}, 'test_%damp.mat'));
NewFile   = fullfile(Folder, sprintf('test_%damp.mat', LastIndex + 1));
More Answers (0)
See Also
Categories
				Find more on Introduction to Installation and Licensing in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

