Re: Re: Setting Negatives to Zero
- To: mathgroup at smc.vnet.net
- Subject: [mg82823] Re: [mg82769] Re: Setting Negatives to Zero
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Thu, 1 Nov 2007 05:02:14 -0500 (EST)
- References: <fg6qha$dj0$1@smc.vnet.net> <200710301046.FAA20355@smc.vnet.net>
You can do it somewhat faster by not using patterns and compiling. For example, if your data set is a list of reals: f = Compile[{{x, _Real, 1}}, x*UnitStep[x]] should be faster than the codes below (at least it is so on my PowerBook). Of course you have to change it to: g = Compile[{{x, _Real, 2}}, x*UnitStep[x]] if your data set is a matrix. Andrzej Kozlowski On 30 Oct 2007, at 19:46, Steve Luttrell wrote: > These do the sort of thing you want > > {1, 2, -3, -4, 5, 6} /. {_?(# < 0 &) -> 0} > > {1, 2, -3, -4, 5, 6} /. {_?NonPositive -> 0} > > and both give > > > -- > Steve Luttrell > West Malvern, UK > > "Kevin J. McCann" <Kevin.McCann at umbc.edu> wrote in message > news:fg6qha$dj0$1 at smc.vnet.net... >> I have a very large data set (64000 x 583) in which negative values >> indicate "no data", unfortunately these negatives are not all the >> same. >> I would like to efficiently set all these negatives to zero. I >> know that >> I will likely be embarrassed when I see how to do it, but I can't >> seem >> to remember or figure it out. I should emphasize that because of the >> size of the data set, this needs to be done efficiently. Another >> programming language does it as follows: >> >> x(x < 0) = 0; >> >> Thanks, >> >> Kevin >> -- >> >> Kevin J. McCann >> Research Associate Professor >> JCET/Physics >> Physics Building >> University of Maryland, Baltimore County >> 1000 Hilltop Circle >> Baltimore, MD 21250 >> > >