How to count how many numbers there are in a string?

Hi,
Basically I have in a script:
I need Matlab to say '3' in this example.
Any ideas?

2 Comments

What is the definition of 'a number'? Are 123.456, 1e7, 4*i numbers? Or is it just integers?
Here are some different ways of writing numbers: do we need to detect them all?:
  • 3
  • 3.14159
  • +3
  • 1.23E-16
  • 0XF3C
  • 001110101
  • Inf
  • two
  • 4/3
  • 75%

Sign in to comment.

 Accepted Answer

More Answers (1)

str='a b c 45 3 2'
out=numel(regexp(str,'\d+','match'))

3 Comments

As long as you don't go overboard.
str='a b c 45 3 2 1e12';
out=numel(regexp(str,'\d+','match'))
out =
5
And does inf (or pi) count as a number? MATLAB thinks they are.
isnumeric(inf)
ans =
1
I know, I know, I suppose pi is not a number either. It just represents a number. But the fact is, 2 just represents a number also.
thanks for the answer. how can I explain what it means? I've never seen any of those functions and only numel and redexp come up in the help
That's because these are the only two functions there. You can find a list and description of the different input arguments of e.g. regexp in the documentation: Regexp Documentation

Sign in to comment.

Categories

Asked:

on 11 Jan 2015

Edited:

on 21 Jan 2015

Community Treasure Hunt

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

Start Hunting!