how to extract double value from a string?

17 次查看(过去 30 天)
I been trying to figure our how to extract certain numbers from a string with this layout:
D:\MATLAB\noise_check\bilder\Image_230217_1227_Temp_ 42,75.png"
I want to extract the value 42.75 from it. Any ideas how I can do this?
I tried this but it gives me NaN as result:
V = str2double(regexp(fullFileNames,'\d+','match'))
This gives error "Error using sscanf, first argument mustnbe a text scalar".
d = sscanf(fullFileNames, '%d %d %d')
Thanks

采纳的回答

Dyuman Joshi
Dyuman Joshi 2023-2-17
移动:Star Strider 2023-2-17
"I tried this but it gives me NaN as result: "
Does it? Let's check -
str = "D:\MATLAB\noise_check\bilder\Image_230217_1227_Temp_ 42,75.png";
V = str2double(regexp(str,'\d+','match'))
V = 1×4
230217 1227 42 75
out = str2double(replace(regexp(str, '\d+,\d+', 'match'),',','.'))
out = 42.7500

更多回答(1 个)

Luca Ferro
Luca Ferro 2023-2-17
编辑:Luca Ferro 2023-2-17
assuming the string is always formatted as such you could just:
s='D:\MATLAB\noise_check\bilder\Image_230217_1227_Temp_ 42,75.png'
numS=s(end-8:end-4);
numS2D=replace(numS(',','.'); %necessary since the conversion to double needs . and not ,
numD=str2double(numS2D)
  2 个评论
VBBV
VBBV 2023-2-17
s='D:\MATLAB\noise_check\bilder\Image_230217_1227_Temp_ 42,75.png'
s = 'D:\MATLAB\noise_check\bilder\Image_230217_1227_Temp_ 42,75.png'
numS=s(end-8:end-4)
numS = '42,75'
numS2D=replace(numS,',','.'); % may be you mean this
numD=str2double(numS2D)
numD = 42.7500

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

标签

产品


版本

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by