MathGroup Archive 2009

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

Search the Archive

Re: patterns

  • To: mathgroup at smc.vnet.net
  • Subject: [mg101895] Re: [mg101864] patterns
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Tue, 21 Jul 2009 03:52:10 -0400 (EDT)
  • Reply-to: hanlonr at cox.net

sub = {11.2, {
    dUp[1] -> 0., dUp[2] -> 0.,
    dUp[3] -> 0., dUp[4] -> 2.1,
    dUp[5] -> 0., dUm[1] -> 0.,
    dUm[2] -> 2.6, dUm[3] -> 0.5,
    dUm[4] -> 0., dUm[5] -> 0.,
    dLp[1] -> 0., dLp[2] -> 0.,
    dLp[3] -> 0., dLp[4] -> 1.4,
    dLp[5] -> 0., dLm[1] -> 0.,
    dLm[2] -> 3.1, dLm[3] -> 1.5,
    dLm[4] -> 0., dLm[5] -> 0.,
    a[1] -> 6 .75, a[2] -> 1.25,
    c[1] -> 1.65, c[2] -> 0.15}};

Cases[sub,
 HoldPattern[Rule[a[_], _]] |
  HoldPattern[Rule[c[_], _]],
 Infinity]

{a[1] -> 4.5, a[2] -> 1.25, 
   c[1] -> 1.65, c[2] -> 0.15}

Cases[sub,
 HoldPattern[Rule[a[_], _] | Rule[c[_], _]],
 Infinity]

{a[1] -> 4.5, a[2] -> 1.25, 
   c[1] -> 1.65, c[2] -> 0.15}


Bob Hanlon

---- Francisco Gutierrez <fgutiers2002 at yahoo.com> wrote: 

=============
Dear Group:
Ther output of a code I made (which includes a minimization) is of the following guise:
 
{11.2,{dUp[1]->0.,dUp[2]->0.,dUp[3]->0.,dUp[4]->2.1,dUp[5]->0.,dUm[1]->0.,dUm[2]->2.6,dUm[3]->0.5,dUm[4]->0.,dUm[5]->0.,dLp[1]->0.,dLp[2]->0.,dLp[3]->0.,dLp[4]->1.4,dLp[5]->0.,dLm[1]->0.,dLm[2]->3.1,dLm[3]->1.5,dLm[4]->0.,dLm[5]->0.,a[1]->6.75,a[2]->1.25,c[1]->1.65,c[2]->0.15}}
 
Of this output, I want to capture only the a's and the c's. There is an easy and sloppy manner, but general and I think not slow, to do this because they appear always at the end of the output. But I wonder if it were possible to use pattern matching to make the same thing, something of the sort of Cases[myoutput, a[__]]. Is it possible? How can it be done? 
Thanks
Francisco       



  • Prev by Date: Re: Product::write : Tag List is Protected Error
  • Next by Date: Re: Add syntax highlighting to own command
  • Previous by thread: Re: patterns
  • Next by thread: patterns