Extracting double from endless serial string
Mostra commenti meno recenti
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!
Risposta accettata
Più risposte (1)
madhan ravi
il 2 Feb 2019
str2double(regexp(Live,'(?<=+.*)(\d+)?.?\d*(?=X)','match')).'
Categorie
Scopri di più su String Parsing in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!