Given the matrix 
   <:/~i.5      NB. 5 could be any positive integer
1 1 1 1 1
0 1 1 1 1
0 0 1 1 1
0 0 0 1 1
0 0 0 0 1
I want to generate 
1  1  1  1  1
1  2  2  2  2
2  3  4  4  4
4  6  7  8  8
8 12 14 15 16
which one would expect to construct with
   ((+ +/),])/&.|.<:/~i.5
but then 
1 1 1 1 1 6 6 6 6 5 35 35 35 34 34 208 208 207 207 207 1245 1244 1244 1244
1244

Of course I can think of all kind of solutions of which 
   (3 : ('z=.(1-#y)}.y';'for_k. }.i.#y do. z=.z, (k{y) + +/z  end.';'z'))
<:/~i.5
I regard the most satisfactory.
Does anyone has a more elegant tacit solution then 
   (((+ +/),]),:^:(1=#@$))/&.|. <:/~i.5
1  1  1  1  1
1  2  2  2  2
2  3  4  4  4
4  6  7  8  8
8 12 14 15 16


R.E Boss

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

Reply via email to