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)

```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