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

Reply via email to