Re: search for an operator in an expression
- To: mathgroup at smc.vnet.net
- Subject: [mg78357] Re: search for an operator in an expression
- From: rob <josh2499 at hotmail.com>
- Date: Fri, 29 Jun 2007 05:41:34 -0400 (EDT)
- References: <f5iuqu$a99$1@smc.vnet.net> <f5o8jr$5jo$1@smc.vnet.net> <f5qhdc$2jt$1@smc.vnet.net> <f5tcb1$2ir$1@smc.vnet.net>
Thanks for taking time to help. I used your suggestion Cases[expr, Plus[x__] :> Length[x]] where expr = 2 + a*Exp[-b x] + Sin[c + b] + d and I get {0,0,2,1}. I could total that and add one to get the correct answer of 4. Another fellow suggested StringCount[ToString[expr], "+"] which puts out the correct answer and I think I understand it. But, forgetting my original question, I'd sure like to understand why your Cases[] gives what it does. Looking up all the players it seems like your suggestion would give a list of the components of FullForm[expr} with the arguments of Plus replaced by their lengths. It probably does what you intended but I sure don't understand why. The quickie explanations in the HELP sometimes make no sense to me. I'm using V5.1/XP. Thanks again for responding. Regards, Rob dh wrote: > Hi, > > you must distinguish between OutputFormat, what you see, and FullForm, > > what Mathematica sees. Try: FullForm[yourExpression] then you will see > > that you have 1 operator Plus with multiple arguments. If you want to > > see the number of arguments, you could e.g. use: > > Cases[expression, Plus[x__] :> Length[x]] > > hope this helps, Daniel > > > > 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 > > > > > > > > >