Store only numbers from user input

1 次查看(过去 30 天)
Hi guys
Is there a way to store only the numbers from lets say an input of the type S^2+67*s+98

采纳的回答

Walter Roberson
Walter Roberson 2011-12-1
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 个)

Jan
Jan 2011-12-1
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 个评论
Raldi
Raldi 2011-12-1
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 2011-12-1
Answered in your newer question.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by