Extracting double from endless serial string
显示 更早的评论
Hey guys,
I am using fscanf to read from a serial port. The data I can read looks like this:
'2.304X+ 102.304X+ 102.304X+ 102.304X+ 1'
or
'.225X+ 1.225X+ 1.225X+ 1.225X+ 1.2'
All I want to do is to extract the 102.304 or the 1.225 as a double. The message has 7 characters
Right now I am doing it like this:
Live = fscanf(Serial,'%s',19); % Scanne den GMS
Value = extractBetween(Live,'+','X'); % Extrahiere die Zahl aus String
Final_Value(y,1) = str2double(Value);
I read 19 digits, so I can be sure to get the whole message.
It works so far, but is there a way to extract the double in a more elegant way?
Would be super nice if someone could help me!
采纳的回答
更多回答(1 个)
madhan ravi
2019-2-2
str2double(regexp(Live,'(?<=+.*)(\d+)?.?\d*(?=X)','match')).'
类别
在 帮助中心 和 File Exchange 中查找有关 String Parsing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!