Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

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

Search the Archive

Re: Better Way of Testing and Replacing List Elements?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg103980] Re: [mg103949] Better Way of Testing and Replacing List Elements?
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Wed, 14 Oct 2009 07:57:11 -0400 (EDT)
  • Reply-to: hanlonr at cox.net

xxx = {1, 2, 3, 4, 5, -6, -7, 8, 9, 10, -1, 11, 12};

ReplacePart[xxx, Position[Map[Negative, xxx], True] -> 0]

{1,2,3,4,5,0,0,8,9,10,0,11,12}

Max[#, 0] & /@ xxx

{1,2,3,4,5,0,0,8,9,10,0,11,12}

xxx /. (x_ /; x < 0) -> 0

{1,2,3,4,5,0,0,8,9,10,0,11,12}

% == %% == %%%

True


Bob Hanlon

---- careysub <careysub at gmail.com> wrote: 

=============
The code below replaces the negative values in a list with zero, and
is an example of a type of operation I use a lot:

xxx = {1, 2, 3, 4, 5, -6, -7, 8, 9, 10, -1, 11, 12};
ReplacePart[xxx, Position[Map[Negative, xxx], True] -> 0]

Is there a "better" way of doing this (fewer function calls, more
efficient)?

My feeling is that I'm doing this in an awkward way.




  • Prev by Date: Re: Better Way of Testing and Replacing List Elements?
  • Next by Date: NDSolve -- how to impose constrint on function
  • Previous by thread: Re: Better Way of Testing and Replacing List Elements?
  • Next by thread: Re: Better Way of Testing and Replacing List Elements?