See http://www.jsoftware.com/pipermail/programming/2008-October/012505.html
;)


On Thu, Feb 27, 2014 at 1:42 AM, Raul Miller <[email protected]> wrote:

> Same as i.@# in =@i.@#
>
> It's generating a list of distinct values which = will use to
> construct an identity matrix.
>
> Mind you, it might have made more sense for = to always construct
> identity matrices.
>
> But in terms of time, constructing an identity matrix is O(n^2) and \:
> is O(n log n) or better (if it's using bin sort, which I am not sure
> it ever is), and identity matrix construction is usually not a
> bottleneck even in situations where it's used a lot.
>
> So, as Roger Hui put it: Bravo!
>
> Thanks,
>
> --
> Raul
>
> On Thu, Feb 27, 2014 at 1:36 AM, Michal Wallace
> <[email protected]> wrote:
> > What purpose does the \: serve there?
> >
> >    (*=) 9 7 5 3
> >
> > 9 0 0 0
> >
> > 0 7 0 0
> >
> > 0 0 5 0
> >
> > 0 0 0 3
> >
> >
> >
> >
> > On Wed, Feb 26, 2014 at 11:48 PM, J. Patrick Harrington
> > <[email protected]>wrote:
> >
> >> even shorter:
> >>
> >>   diag4=: *=@\:
> >>
> >>   diag4 9 7 5 3
> >> 9 0 0 0
> >> 0 7 0 0
> >> 0 0 5 0
> >> 0 0 0 3
> >>               Patrick
> >>
> >>
> >> On Wed, 26 Feb 2014, km 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
> >>
> > ----------------------------------------------------------------------
> > 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