Re: "stepwise" integrating a 2D array

• To: mathgroup at smc.vnet.net
• Subject: [mg91205] Re: "stepwise" integrating a 2D array
• From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
• Date: Sat, 9 Aug 2008 07:46:44 -0400 (EDT)
• References: <g7h9mc\$b73\$1@smc.vnet.net>

```Hi,

try

hvAccumulate[m_] :=
Reverse[Rest[FoldList[#1 + #2 & , 0, #]] & /@
Transpose[
Rest[FoldList[#1 + #2 & , 0, #]] & /@ Transpose[Reverse[m]]]]

and

hvAccumulate[{{a1, a2}, {b1, b2}}]

gives

{{a1 + b1, a1 + a2 + b1 + b2},
{b1, b1 + b2}}

Regards
Jens

Claus wrote:
> Hi,
> I have an array, consisting of n tuples (x,y,z).
> The first entry is the point at the bottom left (thinking in a
> coordinate system, smallest (x,y) pair).
> Now I want to do something like an "stepwise"/empirical integral over (x,y).
>
> Schematically, if I had a 2x2 array (only the z-values),like
>
> a1  a2
> b1  b2
>
> I would want an array like this:
>
> a1+b1    b1+b2+a1+a2
> b1       b1+b2
>
> In the code below, "xyzVals" is the array that I want to integrate,
> containing the (x,y,z) tuples.
>
> I could do a bunch of for loops, but I am trying to not use do loops in
> mathematica whenever possible.
> Is it possible to do it without?
> I tried some of the examples from
> and I also thought about an array with sub-arrays,
> but couldn't get it for me to work.
>
> Thanks for any pointers!
> Claus
>
>
> In[13]:= X = RandomReal[{0, 1}, 500];
> Y = RandomReal[{0, 1}, 500];
> BinWidth = 0.2;
> DensVals =
>   Flatten[BinCounts[
>     Transpose[{X, Y}], {0, 1, BinWidth}, {0, 1, BinWidth}]]
>
> Out[16]= {16, 16, 17, 26, 23, 23, 16, 18, 25, 17, 13, 26, 26, 21, 19, \
> 15, 32, 20, 21, 15, 11, 26, 16, 19, 23}
>
> In[17]:= xyzVals = Table[{i/(1/BinWidth) + (BinWidth/2),
>     j/(1/BinWidth) + (BinWidth/2),
>     DensVals[[(1/BinWidth) i + j + 1]]}
>    , {i, 0, (1/BinWidth) - 1}
>    , {j, 0, (1/BinWidth) - 1}]
>
> Out[17]= {{{0.1, 0.1, 16}, {0.1, 0.3, 16}, {0.1, 0.5, 17}, {0.1, 0.7,
>     26}, {0.1, 0.9, 23}}, {{0.3, 0.1, 23}, {0.3, 0.3, 16}, {0.3, 0.5,
>     18}, {0.3, 0.7, 25}, {0.3, 0.9, 17}}, {{0.5, 0.1, 13}, {0.5, 0.3,
>     26}, {0.5, 0.5, 26}, {0.5, 0.7, 21}, {0.5, 0.9, 19}}, {{0.7, 0.1,
>     15}, {0.7, 0.3, 32}, {0.7, 0.5, 20}, {0.7, 0.7, 21}, {0.7, 0.9,
>     15}}, {{0.9, 0.1, 11}, {0.9, 0.3, 26}, {0.9, 0.5, 16}, {0.9, 0.7,
>     19}, {0.9, 0.9, 23}}}
>

```

• Prev by Date: Re: Purchasing Mathematica
• Next by Date: RE: Re: Workaround for an unexpected behavior of Sum
• Previous by thread: "stepwise" integrating a 2D array
• Next by thread: Re: "stepwise" integrating a 2D array