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