Don,

Now that we have  =i.5  it could be in the dictionary under "identity
matrix"

And, you might like this:

   c=: 13 :'(i.y)*=i.y'
   c
i. * [: = i.
     
   c 5
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

 Linda

  
-----Original Message-----
From: programming-boun...@forums.jsoftware.com
[mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Ric Sherlock
Sent: Tuesday, November 20, 2012 4:40 AM
To: programm...@jsoftware.com
Subject: Re: [Jprogramming] Verb definition + inadvertent train formation.

I can't really claim any credit here. I was just repeating the code from
earlier in the thread. I just left out the atop conjunction ( @ ) that is
used to enable the sentence to be assigned to a name as a
verb:
   =@i.@# 33 4 4 33 2
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
   = i. # 33 4 4 33 2
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:27 PM, Bo Jacoby <bojac...@yahoo.dk> wrote:
> I have never written a J program that couldn't be improved . Well done,
Ric!
>
> - Bo
>
>
>
>
>>________________________________
>> Fra: Ric Sherlock <tikk...@gmail.com>
>>Til: programm...@jsoftware.com
>>Sendt: 6:04 tirsdag den 20. november 2012
>>Emne: Re: [Jprogramming] Verb definition + inadvertent train formation.
>>
>>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
>>
>>
>>
> ----------------------------------------------------------------------
> 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