Re: patterns
- To: mathgroup at smc.vnet.net
- Subject: [mg101893] Re: patterns
- From: Albert Retey <awnl at gmx-topmail.de>
- Date: Mon, 20 Jul 2009 19:22:47 -0400 (EDT)
- References: <h41f5m$rin$1@smc.vnet.net>
Francisco Gutierrez 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
>
If I define
res = <above list>
this will do the trick:
Cases[res, Verbatim[Rule][(a | c)[___], _], {2}]
I think it should be efficient enough if your list of rules is less than
a few hundred or thousend entries long...
hth,
albert