Yup. Amalgating the ideas in diag1 and expressions by Don Guinn and Kip Murray:
diag1a=: * =@i.@# diag1a 10 20 30 40 10 0 0 0 0 20 0 0 0 0 30 0 0 0 0 40 See also http://www.jsoftware.com/jwiki/Essays/Identity_Matrix On Wed, Feb 26, 2014 at 7:40 PM, km <[email protected]> wrote: > (*"0 1 =@i.@#) 1 2 3 > 1 0 0 > 0 2 0 > 0 0 3 > > --Kip Murray > > Sent from my iPad > > > On Feb 26, 2014, at 9:35 PM, Roger Hui <[email protected]> > wrote: > > > > diag=: 3 : 'y (,&.>~i.#y)} 0 $~ ,~#y' > > diag 10 20 30 40 > > 10 0 0 0 > > 0 20 0 0 > > 0 0 30 0 > > 0 0 0 40 > > > > diag1=: ]\ * =/~@i.@# > > diag1 10 20 30 40 > > 10 0 0 0 > > 0 20 0 0 > > 0 0 30 0 > > 0 0 0 40 > > > > diag2=: -@>:@i.@# {."0 ] > > diag2 10 20 30 40 > > 10 0 0 0 > > 0 20 0 0 > > 0 0 30 0 > > 0 0 0 40 > > > > diag3=: ,~@# $ ] #~ 1 j. # > > diag3 10 20 30 40 > > 10 0 0 0 > > 0 20 0 0 > > 0 0 30 0 > > 0 0 0 40 > > > > > > > > > > > >> On Wed, Feb 26, 2014 at 7:12 PM, Joe Bogner <[email protected]> > wrote: > >> > >> Sorry, I figured it out: > >> > >> I just needed one more 0... > >> > >> ] S * (4 4 $ 1 0 0 0 0) > >> 4 0 0 0 > >> 0 3 0 0 > >> 0 0 2.23607 0 > >> 0 0 0 0 > >> > >>> On Wed, Feb 26, 2014 at 10:02 PM, Joe Bogner <[email protected]> > wrote: > >>> I'm experimenting with svd and am looking for a nicer way of creating > >>> a matrix from the S diagonal > >>> > >>> 4 3 2.23607 0 > >>> > >>> needs to be > >>> > >>> ] (4 4 $ 4 0 0 0 0 3 0 0 0 0 2.23607 0 0 0 0 0 ) > >>> 4 0 0 0 > >>> 0 3 0 0 > >>> 0 0 2.23607 0 > >>> 0 0 0 0 > >>> > >>> What would be the idiomatic way to make that conversion? I tried > >>> various versions of reshape and insert. > >>> > >>> Not quite... > >>> > >>> ],\ S > >>> 4 0 0 0 > >>> 4 3 0 0 > >>> 4 3 2.23607 0 > >>> 4 3 2.23607 0 > >>> > >>> I also thought about multiplying it by a diagonal matrix of 0s and 1s > >>> but couldn't get that figured out either > >>> > >>> Thanks > >>> Joe > >> ---------------------------------------------------------------------- > >> 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
