Extracting number from a string

4 visualizaciones (últimos 30 días)
captainmariah
captainmariah el 30 de Mzo. de 2021
Editada: Stephen23 el 30 de Mzo. de 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

Respuesta aceptada

Stephen23
Stephen23 el 30 de Mzo. de 2021
str = 'TotalPower:9,7406E+00Watts';
num = sscanf(strrep(str,',','.'),'%*[^:]:%f')
num = 9.7406
  2 comentarios
captainmariah
captainmariah el 30 de Mzo. de 2021
Editada: captainmariah el 30 de Mzo. de 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 el 30 de Mzo. de 2021
Editada: Stephen23 el 30 de Mzo. de 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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre String Parsing en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by