Roger: Better to just map i and j and values separately Oleg: Or maybe three mapped files: i, j, values.
What is the difference between the two descriptions? ----- Original Message ----- From: Oleg Kobchenko <[EMAIL PROTECTED]> Date: Thursday, January 10, 2008 2:59 Subject: Re: [Jgeneral] table (i,j,value) to matrix To: General forum <[email protected]> > --- Roger Hui <[EMAIL PROTECTED]> wrote: > > Better to just map i and j and values separately > > (perhaps i,.j and value as two map files), and apply your > > iterative methods to these. > > Or maybe three mapped files: i, j, values. > Then access to the matrix is simply relational. > See http://www.jsoftware.com/jwiki/DB/Flwor > > i.3 > 4 NB. matrix > 0 1 2 3 > 4 5 6 7 > 8 9 10 11 > (#: i.@(*/)) 3 4 NB. index odometer > 0 0 > 0 1 > 0 2 > 0 3 > 1 0 > 1 1 > 1 2 > 1 3 > 2 0 > 2 1 > 2 2 > 2 3 > 'r c'=. |:(#: i.@(*/)) 3 4 > v=. ,@i. 3 4 > > r,.c,.v NB. relational form > 0 0 0 > 0 1 1 > 0 2 2 > 0 3 3 > 1 0 4 > 1 1 5 > 1 2 6 > 1 3 7 > 2 0 8 > 2 1 9 > 2 2 10 > 2 3 11 > 1 = > r NB. row 1 mask > 0 0 0 0 1 1 1 1 0 0 0 0 > v #~ > 1=r NB. SQL: select v where r=1 > 4 5 6 7 > 1 2 =/ > r NB. rows 1 2 mask > 0 0 0 0 1 1 1 1 0 0 0 0 > 0 0 0 0 0 0 0 0 1 1 1 1 > v #~ 1 2 =/ r NB. > rows 1 2 value > 4 5 6 7 > 8 9 10 11 > > 1 = > c NB. column 1 mask > 0 1 0 0 0 1 0 0 0 1 0 0 > v #~ 1 = > c NB. etc ... > 1 5 9 > > v #~ c = 1 > 1 5 9 > 1 3 =/ c > 0 1 0 0 0 1 0 0 0 1 0 0 > 0 0 0 1 0 0 0 1 0 0 0 1 > v #~ 1 3 =/ c > 1 5 9 > 3 7 11 > > > (t#r),.(t#c),.v#~t=. 0=4|v NB. 4 multiple > 0 0 0 > 1 0 4 > 2 0 8 > > (~.r) ,. > r+//.v NB. sum by rows > 0 6 > 1 22 > 2 38 > +/"1 i.3 4 > 6 22 38 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
