Re: setting elements of an array based on a condition
- To: mathgroup at smc.vnet.net
- Subject: [mg87160] Re: setting elements of an array based on a condition
- From: dh <dh at metrohm.ch>
- Date: Wed, 2 Apr 2008 05:58:11 -0500 (EST)
- References: <fsvejr$ssp$1@smc.vnet.net>
Hi Claus,
to set elements <0 to 0 you may use:
W/. x_/;x<0 -> 0
Adding all elements in a column is easier done if you Transpose W first
so that you add all elements in a row. This can be done by:
Total /@ W
hope this helps, Daniel
Claus wrote:
> Hello,
> I have one array, W, which for testing purposes has 25 rows and 50 columns.
> There are two more things I want to accomplish with this:
> 1) I want to set all elements of W which are smaller than zero to zero.
> 2) Then I want to calculate the sum of the elements in each column of W.
> How can I do this?
>
> The code below shows how I get to W.
>
> Thank you for your help!
> Claus
>
>
>
> X = RandomReal[{0, 1}, 50];
> Y = RandomReal[{0, 1}, 50];
>
> BinWidth = 0.2;
> Radius = 0.2;
>
> xyzVals2 = Table[
> {i/(1/BinWidth) + (BinWidth/2)
> , j/(1/BinWidth) + (BinWidth/2)
> }
> , {i, 0, (1/BinWidth) - 1}
> , {j, 0, (1/BinWidth) - 1}];
>
> RasterPtsVals = Partition[Flatten[xyzVals2], 2]
>
> RasterX = RasterPtsVals[[All, 1]]
> RasterY = RasterPtsVals[[All, 2]]
>
> XDiffSq = (RasterX - a /. a -> X)^2;
> YDiffSq = (RasterY - b /. b -> Y)^2;
> Dist = Sqrt[(XDiffSq + YDiffSq)];
>
> W = 1 - (Dist/Radius)
>