Extracting number from a string

4 Ansichten (letzte 30 Tage)
captainmariah
captainmariah am 30 Mär. 2021
Bearbeitet: Stephen23 am 30 Mär. 2021
Hi, I want to extact the number from this string.
res_str ='TotalPower:9,7406E+00Watts'
I used below to find the index of the semi-colon, but how can I get the number from this format?
index = strfind(res_str, ':')-1
theNumber = str2double(res_str(index:21)) % - gives just NAN
Want to find the number positions (the start and end of the number, i.e. pos 12 and 21 in this case) and convert this to a number 9.7406E00
theNumber = (res_str(12:21))
theNumber =
'9,7406E+00'
Many thanks

Akzeptierte Antwort

Stephen23
Stephen23 am 30 Mär. 2021
str = 'TotalPower:9,7406E+00Watts';
num = sscanf(strrep(str,',','.'),'%*[^:]:%f')
num = 9.7406
  2 Kommentare
captainmariah
captainmariah am 30 Mär. 2021
Bearbeitet: captainmariah am 30 Mär. 2021
Thank you, I managed to get the number after some fail and trial, but its not as sleek as this code. My attempt.
index1 = strfind(res_str, ':')+1;
index2 = strfind(res_str, 'W')-1;
theNumber = res_str(index1:index2);
totalPower=str2double(theNumber);
What does this part do?
%*[^:]:%f
Stephen23
Stephen23 am 30 Mär. 2021
Bearbeitet: Stephen23 am 30 Mär. 2021
"What does this part do?"
That defines the format for extracting data from the string: read the sscanf documentation to know more.
... %*[^:]:%f Three distinct parts of the format string:
... %*[^:] Read and discard all non-colon characters
... : Literal colon character
... %f Read number, including optional exponent

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by