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