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
>>
>
>