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 中查找有关 Environment and Settings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!