Extracting double from endless serial string
Show older comments
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!
Accepted Answer
More Answers (1)
madhan ravi
on 2 Feb 2019
str2double(regexp(Live,'(?<=+.*)(\d+)?.?\d*(?=X)','match')).'
Categories
Find more on String Parsing 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!