MathGroup Archive 1996

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

Search the Archive

Re: How can this MapAt application be done more efficiently

  • To: mathgroup at smc.vnet.net
  • Subject: [mg4217] Re: How can this MapAt application be done more efficiently
  • From: Paul Abbott <paul at earwax.pd.uwa.edu.au>
  • Date: Tue, 18 Jun 1996 03:26:09 -0400
  • Organization: University of Western Australia
  • Sender: owner-wri-mathgroup at wolfram.com

Joel Cannon wrote:
 
> I have written a function to Drop any zero's from a table of numbers.
> Here is an example:
> 
>         In[161]:= dropzero[ {{5, 0}, {4, 1}, {3, 2, 0}, {3, 1, 1}} ]
> 
>         Out[161]= {{5}, {4, 1}, {3, 2}, {3, 1, 1}}
> 
> I would like to learn how to do it more efficiently. In what I am
> doing, the 0's will always occur as the last element of the inner
> lists (although it would be nice to have it work in general).

DeleteCases does what you want:

	?DeleteCases

	DeleteCases[expr, pattern] removes all elements of expr which
	   match pattern. DeleteCases[expr, pattern, levspec] removes
	   all parts of expr on levels specified by levspec which
	   match pattern.

For your expression:

	expr = {{5, 0}, {4, 1}, {3, 2, 0}, {3, 1, 1}};

we use pattern-matching and a conditional test to delete all zeros (at 
all levels):

	DeleteCases[expr, x_ /; x == 0, Infinity]

	{{5}, {4, 1}, {3, 2}, {3, 1, 1}}

Here is a pure function alternative:

	DeleteCases[expr, _?(# == 0&),Infinity]

	{{5}, {4, 1}, {3, 2}, {3, 1, 1}}

Cheers,
	Paul 
_________________________________________________________________ 
Paul Abbott
Department of Physics                       Phone: +61-9-380-2734 
The University of Western Australia           Fax: +61-9-380-1014
Nedlands WA  6907                         paul at physics.uwa.edu.au 
AUSTRALIA                           http://www.pd.uwa.edu.au/Paul
_________________________________________________________________

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


  • Prev by Date: Re: can mathematica do this, please answer
  • Next by Date: Help: Column/Row Vector
  • Previous by thread: Re: How can this MapAt application be done more efficiently
  • Next by thread: Binary files under MS Windows