Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1996
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1996

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

Search the Archive

Re: req. list sifting

  • To: mathgroup at smc.vnet.net
  • Subject: [mg4922] Re: req. list sifting
  • From: "Brian J. Albright" <albright at physics.ucla.edu>
  • Date: Fri, 4 Oct 1996 00:17:53 -0400
  • Organization: UCLA Department of Physics and Astronomy
  • Sender: owner-wri-mathgroup at wolfram.com

c. osborne wrote:
> 
> i have developed a piece of mathematica code which generates a list of
> results in the form :
> {{1, 2, {a->4, b->5, c->6}, 7} , {8 ,9 , {a->10, b->11 ... etc}}.
> what i need to to is to sort these results into a new table which
> contains all the sublists in which a>0 and b>3 or whatever.
> I have not been able to deduce a way of doing this from the
> mathematica manual. Can anyone help ?.
> thanks.
> 
> C.Osborne
> UWCC Earth Sciences
> Osbornece at cf.ac.uk


Hi.
One quick and dirty(tm) way to do this would be as follows:

Suppose that you have a list of the form:

list = {  {1, {a->1, b->3}},
          {2, {a->5, b->19}},
          {3, {a->12, b->3}}  };

and you want, say, to eliminate all the entries for which the second
rule evaluates to a "b" that is less than 5.  You can define a function
that substitutes a null list {} for entries that match b < 5 and then
apply the funtion to "list" at level 1.  Then flatten the Array to
eliminate the "{}" entries, and finally, substitute "List" for the head
"func":

func[ n_, {a->A_, b->B_} ] /; B < 5 := {};
newlist = Flatten[ Apply[ func, list, 1 ] ] /. func -> List

[Output:]
	{{1, {a -> 1, b -> 3}}, {3, {a -> 12, b -> 3}}}

Of course this approach assumes that the order and placement of the
rules in the list are always the same, so it's not the most general
possible solution. However, this technique can easily be extended to
handle more general lists by modifying func in an appropriate fashion.  

If you do a lot of work with manipulating lists and patterns and you
would like to supplement the discussion in the Mathematica book, then I
would recommend David Wagner's book "Power Progrmaming with
Mathematica," esp. chapters 5 and 6 which deal with functional and
rule-based programming.  I found the discussion there to be quite lucid
and informative.  (Much in line with the rest of the book.  Though the
cover design is pretty lame....) 

Regards,

-Brian

-------------------------------------------|----------------------------
Brian J. Albright                          | 
Department of Physics and Astronomy, UCLA  |  Um, yeah.  Uh....  Oh gee.
albright at physics.ucla.edu                  |   
http://bohm.physics.ucla.edu/~albright     |  [.signature stage fright]
-------------------------------------------|----------------------------

==== [MESSAGE SEPARATOR] ====


  • Prev by Date: Re: Importing gif, tiff... (etc) as an array (summary)
  • Next by Date: BOOK ADVERTISEMENT: Experiments in Undergraduate Mathematics
  • Previous by thread: Re: Importing gif, tiff... (etc) as an array (summary)
  • Next by thread: BOOK ADVERTISEMENT: Experiments in Undergraduate Mathematics