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

Reply via email to