Store only numbers from user input

3 views (last 30 days)
Hi guys
Is there a way to store only the numbers from lets say an input of the type S^2+67*s+98

Accepted Answer

Walter Roberson
Walter Roberson on 1 Dec 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 Comment
Raldi
Raldi on 1 Dec 2011
No i think this will do, thank you Walter.

Sign in to comment.

More Answers (1)

Jan
Jan on 1 Dec 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 Comments
Walter Roberson
Walter Roberson on 1 Dec 2011
Answered in your newer question.

Sign in to comment.

Categories

Find more on Characters and Strings 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!

Translated by