Store only numbers from user input

1 visualización (últimos 30 días)
Raldi
Raldi el 1 de Dic. de 2011
Hi guys
Is there a way to store only the numbers from lets say an input of the type S^2+67*s+98

Respuesta aceptada

Walter Roberson
Walter Roberson el 1 de Dic. de 2011
numstrs = regexp(TheString, '-?\d+', 'match');
then convert each of the cell strings returned in numstrs to numeric form. The -? part is to recognize an optional negative sign.
If you want to be able to accept floating point numbers, or if you want to recognize fractions as being numbers, or if you want to recognize pi as being a number, then the task gets more difficult.
  1 comentario
Raldi
Raldi el 1 de Dic. de 2011
No i think this will do, thank you Walter.

Iniciar sesión para comentar.

Más respuestas (1)

Jan
Jan el 1 de Dic. de 2011
Another approach from the times of Matlab 5.3 without REGEXP:
S = 'S^2+67*s+98';
S((S < '0' | S > '9') & S ~= '.') = ' ';
N = sscanf(S, '%g');
  3 comentarios
Raldi
Raldi el 1 de Dic. de 2011
Seems that i have another problem now. What if i only need the numbers that are lets say just before the letter S. I tried to figure it out from the matlab's help but with no luck.
Walter Roberson
Walter Roberson el 1 de Dic. de 2011
Answered in your newer question.

Iniciar sesión para comentar.

Categorías

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

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by