Extract float from a filename
    조회 수: 4 (최근 30일)
  
       이전 댓글 표시
    
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
채택된 답변
  DGM
      
      
 2022년 2월 24일
        
      편집: DGM
      
      
 2022년 2월 24일
  
      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_',''))
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Dates and Time에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!