I have never written a J program that couldn't be improved . Well done, Ric!
- Bo >________________________________ > Fra: Ric Sherlock <tikk...@gmail.com> >Til: programm...@jsoftware.com >Sendt: 6:04 tirsdag den 20. november 2012 >Emne: Re: [Jprogramming] Verb definition + inadvertent train formation. > >Yes and I think I prefer that formulation however monadic = works too: > = i.5 >1 0 0 0 0 >0 1 0 0 0 >0 0 1 0 0 >0 0 0 1 0 >0 0 0 0 1 > >On Tue, Nov 20, 2012 at 6:01 PM, Bo Jacoby <bojac...@yahoo.dk> wrote: >> The unit matrix is >> =/~i.5 >> 1 0 0 0 0 >> 0 1 0 0 0 >> 0 0 1 0 0 >> 0 0 0 1 0 >> 0 0 0 0 1 >> >> - Bo >> >> >> >> >> >>>________________________________ >>> Fra: Don & Cathy Kelly <d...@shaw.ca> >>>Til: programm...@jsoftware.com >>>Sendt: 0:47 tirsdag den 20. november 2012 >>>Emne: Re: [Jprogramming] Verb definition + inadvertent train formation. >>> >>>No - I should have made it clear that the actual y is a list of n >>>numbers and I need to add this list to the diagonal of a matrix. >>>Since this will (of necessity) be within a loop and each time both the >>>list and matrix will be modified (except for size), >>>I have come to the conclusion that I should make a single unit matrix >>>outside the iteration and use this each time. >>> ] u=:=@i.@#i.5 >>> >>>1 0 0 0 0 >>>0 1 0 0 0 >>>0 0 1 0 0 >>>0 0 0 1 0 >>>0 0 0 0 1 >>> >>>y=: 2 3 5 4 10 >>> >>> ]u *y >>>2 0 0 0 0 >>>0 3 0 0 0 >>>0 0 5 0 0 >>>0 0 0 4 0 >>>0 0 0 0 10 >>>repeating with different y values as needed. >>> >>>The algorithm for u is taken from the "phrases" section of the >>>vocabulary-maybe you have a simpler one?- >>>Thanks >>> >>>Don >>> >>> >>>On 18/11/2012 10:33 PM, bob therriault wrote: >>>> Hi Don, >>>> >>>> Are you looking for >>>> >>>> y=:5 >>>> c=:(*=)&i. >>>> c y >>>> 0 0 0 0 0 >>>> 0 1 0 0 0 >>>> 0 0 2 0 0 >>>> 0 0 0 3 0 >>>> 0 0 0 0 4 >>> >>>> Cheers, bob >>>> >>>> On 2012-11-18, at 7:13 PM, Don & Cathy Kelly wrote: >>>> >>>>> OOPs' I meant y=:i.5 5 >>>>> >>>>> Don >>>>> On 18/11/2012 7:04 PM, Don & Cathy Kelly wrote: >>>>>> That gives the diagonal nicely but the problem that I didn't express >>>>>> clearly is that I want a matrix as follows >>>>>> y=:i.5 >>>>>> >>>>>> ]result =: (* =@i.@#) y >>>>>> 0 0 0 0 0 >>>>>> 0 1 0 0 0 >>>>>> 0 0 2 0 0 >>>>>> 0 0 0 3 0 >>>>>> 0 0 0 0 4 >>>>>> which II can get by >>>>>> c=:* =@i.@# >>>>>> c y >>>>>> 0 0 0 0 0 >>>>>> 0 1 0 0 0 >>>>>> 0 0 2 0 0 >>>>>> 0 0 0 3 0 >>>>>> 0 0 0 0 4 >>>>>> >>>>>> For my purposes I can use a base nth order unit matrix by the phrase as >>>>>> given in phrases as m=:=@i.@# y >>>>>> and then deal with m* y1 , m* y2 etc which suits my purpose which is to >>>>>> form a specific Jacobean used for power system load flows. >>>>>> I have handled this problem in APL and am trying to replicate the >>>>>> coding more directly in J-mainly as an exploration of J for my own >>>>>> satisfaction. >>>>>> >>>>>> Thank you >>>>>> >>>>>> Don Kelly >>>> ---------------------------------------------------------------------- >>>> 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 >---------------------------------------------------------------------- >For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm