Extract float from a filename
    4 views (last 30 days)
  
       Show older comments
    
Hi all,
I have a list of files in a directory with a name of "time_ xx" where xx is number (for e.g 0.20, 0.41, 0.61, 0.82,...) the number is not does not have a fixed expression. I want like to extract these number and used it for calculation later. 
May I know what function can I used to extract the number from a filename without extension?
Thank you.
0 Comments
Accepted Answer
  DGM
      
      
 on 24 Feb 2022
        
      Edited: DGM
      
      
 on 24 Feb 2022
  
      Well I guess this is one way.  There are probably more elegant ways of unpacking the nested cell array and converting to numeric, but this is how I did it.
names = {'time_0.709'
    'time_5.61'
    'time_0.2081'
    'time_45.027'
    'time_90'};
filenums = str2double(regexprep(names,'.*_(?=(\d*\.*)+$)',''))
This looks for any number between an underscore and the end of each name.  The filename prefix is ignored except for the underscore.
I guess if you wanted rely on the prefix, you could alternatively just do:
names = {'time_0.709'
    'time_5.61'
    'time_0.2081'
    'time_45.027'
    'time_90'};
filenums = str2double(strrep(names,'time_',''))
More Answers (0)
See Also
Categories
				Find more on Dates and Time 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!
