help-octave
[Top][All Lists]

## RE: Finding numbers in a string

 From: Hall, Benjamin Subject: RE: Finding numbers in a string Date: Wed, 20 Apr 2005 17:58:03 -0400

```Taking that a little further...the following is a hack that will work for
integers, it gets trickier to check for floating point values

octave:46> some_str = "alpha 1 is 10 bigger than 33, I don't 4, 12,55? 2";
octave:47> nums = "0123456789";
octave:48> idx = !ismember( double(some_str), double(nums) );
octave:49> some_str(idx) = ' ';
octave:50> values = sscanf( some_str, '%d' )
values =

1
10
33
4
12
55
2

-----Original Message-----
Sent: Wednesday, April 20, 2005 5:20 PM
To: Søren Hauberg
Cc: Help-Octave
Subject: Re: Finding numbers in a string

On Wed, 2005-04-20 at 14:20, Søren Hauberg wrote:
> Hi
> I have a string containing both numbers and letters, and I want to
> exctract the numbers and discard the letters. How do I do such a thing?
>
> /Søren

There's probably a better way, but try this at the command line in
Octave ('ismember' is an octave-forge function):

Octave:1>
['ab1234567890cd'](find(ismember(toascii('ab1234567890cd'),[48:57])) )

([48:57]) are the ascii integers that correspond to the strings
['0':'9'], in case you were wondering)

-EJR

-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.octave.org
How to fund new projects:  http://www.octave.org/funding.html
Subscription information:  http://www.octave.org/archive.html
-------------------------------------------------------------

-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.octave.org
How to fund new projects:  http://www.octave.org/funding.html
Subscription information:  http://www.octave.org/archive.html
-------------------------------------------------------------

```