Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
Drexel University or The Math Forum.
|
|
|
|
Re: Parsing Strings
Posted:
Nov 13, 2012 7:19 PM
|
|
"Kevin Ellis" wrote in message <k7umqo$mph$1@newscl01ah.mathworks.com>... > dpb <none@non.net> wrote in message <k7uma4$f1d$1@speranza.aioe.org>... > > On 11/13/2012 3:56 PM, Kevin Ellis wrote: > > > Hello, > > > > > > I have a question regarding parsing strings. Suppose I have a string: > > > > > > S = '42.714 GAL OF SMALL BOAT FUEL @3.699 PER GAL.' > > > > > > I have been trying to figure out a way to remove the numbers 42.714 and > > > 3.699 from the string. I have tried using 'sscanf' and 'regexp' to do > > > this. Using regexp I can find the index of the numbers: > > ... > > > > Is the text fixed or variable? > > > > If it's fixed and simply values change you can use > > > > x = sscanf(S,'%f GAL OF SMALL BOAT FUEL @%f'); > > > > sscanf() isn't flexible in mixing conversion of string and numeric > > values but textscan() can. > > > > In regexp the expression needed would be (assuming F format,not E) > > > > s=regexp(S,'[0-9.]','match'); > > > > then convert the resulting strings. > > > > -- > > The text is variable. The placement of the numbers will change and also the price per gallon may not appear at all. How can textscan() help me? > > Kevin
I looked into the help file for textscan(). That could actually work. I tried to read the string into a cell array using textscan().
C = textscan(S,'%s')
C = {9x1} cell
Is there any way to read each individual word separated by a blank space into a cell array of size {1,9}? More explicitly, is there a way to read each word of the string into an individual cell element? That would be more helpful to me.
Kevin
|
|
|
|