To go back from your desired form to the original form, you
would accumulate sums of the each line, starting at the
end.

In other words, +/\."1 would undo the operation you want.

So,  +/\.^:_1"1 is the operation you want.

   ]prm=. 35 35 27 22, 60 54 49 40, 47 43 40 40, 70 64 0 0,85 85 0 0,: 155 0 
   +/\.^:_1"1 prm
  0  8 5 22
  6  5 9 40
  4  3 0 40
  6 64 0  0
  0 85 0  0
155  0 0  0

Henry Rich

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of R.E. Boss
> Sent: Thursday, May 29, 2008 2:16 AM
> To: 'Programming forum'
> Subject: RE: [Jprogramming] BegQ--Does a two-atoms-at-a-time 
> verb/phrase exist?
> 
>    ({:,~ }:- }.)&.|: prm
>   0  8 5 22
>   6  5 9 40
>   4  3 0 40
>   6 64 0  0
>   0 85 0  0
> 155  0 0  0
> 
> 
> R.E. Boss
> 
> 
> > -----Oorspronkelijk bericht-----
> > Van: [EMAIL PROTECTED] [mailto:programming-
> > [EMAIL PROTECTED] Namens Devon McCormick
> > Verzonden: donderdag 29 mei 2008 5:17
> > Aan: Programming forum
> > Onderwerp: Re: [Jprogramming] BegQ--Does a 
> two-atoms-at-a-time verb/phrase
> > exist?
> > 
> > How about
> > 
> >    ]prm=. 35 35 27 22, 60 54 49 40, 47 43 40 40, 70 64 0 
> 0,85 85 0 0,: 155
> > 0
> > 0 0
> > 35 35 27 22
> > 60 54 49 40
> > 47 43 40 40
> > 70 64   0   0
> > 85 85   0   0
> > 155 0   0   0
> > 
> >    ({:"1 prm),.~2-/\"1 prm
> > 0      8  5 22
> > 6      5  9 40
> > 4      3  0 40
> > 6    64  0   0
> > 0    85  0   0
> > 155 0   0   0
> > 
> > The "({:"1 prm),.~" part appends the final column onto the end.
> > 
> > The key here is that scan "\" takes both a derived function 
> "-/" and a
> > numeric argument "2" specifying the window to which the 
> derived function
> > applies; a negative numeric argument specifies 
> non-overlapping windows.
> > 
> > On Wed, 28 May 2008 21:51:08 -600, PackRat <[EMAIL PROTECTED]> wrote:
> > >
> > > I have an array of continually cumulating values in each 
> row.  What I'd
> > > like to do is to create another array (or even using the 
> *same* array
> > > eventually saved under a different name) that, for each 
> row, contains
> > > the deltas (changes) between two columns at a time, 
> sliding along.  I
> > > thought it'd be most convenient to reverse the columns in 
> the array
> > > (using |.) so that subtractions would be easier.  I 
> thought I could use
> > > something like -/ but that didn't work at all since, no 
> matter what I
> > > did, it kept grouping the columns differently from what I wanted.
> > > Here's a reversed array (left) and a derived array 
> (right) showing the
> > > end result I'm looking for:
> > >
> > >    35   35   27  22       0    8    5  22
> > >    60   54   49  40       6    5    9  40
> > >    47   43   40  40  -->  4    3    0  40
> > >    70   64    0   0       6   64    0   0
> > >    85   85    0   0       0   85    0   0
> > >   155    0    0   0     155    0    0   0
> > >
> > > For example, what I'm looking for should do the following 
> in the first
> > > row, taking two columns at a time and sliding to the right:
> > >    35 - 35 = 0  (is or replaces first column's value)
> > >    35 - 27 = 8  (is or replaces second column's value)
> > >    27 - 22 = 5  (is or replaces third column's value)
> > >    22      = 22 (last column retains its value)
> > >
> > ...
> > 
> > 
> > --
> > Devon McCormick, CFA
> > ^me^ at acm.
> > org is my
> > preferred e-mail
> > 
> ----------------------------------------------------------------------
> > For information about J forums see 
> http://www.jsoftware.com/forums.htm
> 
> ----------------------------------------------------------------------
> For information about J forums see 
> http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to