MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: search for an operator in an expression

  • To: mathgroup at smc.vnet.net
  • Subject: [mg78272] Re: [mg78204] Re: search for an operator in an expression
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Wed, 27 Jun 2007 05:30:14 -0400 (EDT)
  • References: <f5iuqu$a99$1@smc.vnet.net> <f5o8jr$5jo$1@smc.vnet.net> <200706260805.EAA02477@smc.vnet.net>

rob wrote:
> Sir, I tried your suggestion as follows:
> 
> expr = 2 + a*Exp[-b x] + Sin[c + b] + d
> 
> Count[expr, HoldPattern[Plus[__]], Infinity]
> 
> which gives a result of "1". I count 4 "+" in expr. Please, 
> what am I doing wrong? Thanks.
> 
> dh wrote:
> 
> 
>>Hi Daniel,
>>
>>you may use "Count". Take care to search on all "levels" and prevent 
>>
>>evaluation of the operator. Asssuming your expression is in: expr, e.g.:
>>
>>Count[expr, HoldPattern[ Plus[__] ], Infinity]
>>
>>hope this helps, Daniel
>>
>>
>>Daniel wrote:
>>
>>>Is there a way to search for an operator in a symbolic expression? My wish
 >>>is to show that there is only "+" in a very large expression. Rather 
than
>>>showing an expression on multiple pages I would like to perform a search
>>>that shows there is only "+" between the terms. Converting to a string
>>>does not seem to work since the expression is written on multiple lines
 >>>(fractions, exponents etc..)

>>
>>>Thanks
>>

If you are looking for the number of plus signs that would appear in the 
infix form then that goes as follows. Find all subexpressions with head 
of Plus, then tally the number of arguments less 1.

Total[Cases[{expr}, HoldPattern[Plus[a__]]:>Length[{a}]-1, Infinity]]

Daniel Lichtblau
Wolfram Research


  • Prev by Date: Re: Re: problem with Pick
  • Next by Date: Re: Re: Why use Java in Mathematica?
  • Previous by thread: Re: search for an operator in an expression
  • Next by thread: Re: Re: search for an operator in an expression