If the zeroes here were 32 (i.e. a. i. ' '):
(*=@/:) (a.&i.) 'abcdef'
97 0 0 0 0 0
0 98 0 0 0 0
0 0 99 0 0 0
0 0 0 100 0 0
0 0 0 0 101 0
0 0 0 0 0 102
then this would do it:
(*=@/:)&.(a.&i.) 'abcdef'
So you could do this:
(+32*0&=)@(*=@/:)&.(a.&i.) 'abcdef'
a
b
c
d
e
f
On Sun, Apr 26, 2009 at 1:16 PM, R.E. Boss <[email protected]> wrote:
> diamond=: r&.|:@ (r=.],}.@|.)@: (|."1)@ diag
>
> ({~ diam...@#) '*abcdef'
> *****a*****
> ****b*b****
> ***c***c***
> **d*****d**
> *e*******e*
> f*********f
> *e*******e*
> **d*****d**
> ***c***c***
> ****b*b****
> *****a*****
>
>
> R.E. Boss
>
>
>> -----Oorspronkelijk bericht-----
>> Van: [email protected] [mailto:programming-
>> [email protected]] Namens R.E. Boss
>> Verzonden: vrijdag 24 april 2009 19:26
>> Aan: 'Programming forum'
>> Onderwerp: Re: [Jprogramming] diagonal arrays
>>
>> With
>>
>> diag 7
>> 1 0 0 0 0 0
>> 0 2 0 0 0 0
>> 0 0 3 0 0 0
>> 0 0 0 4 0 0
>> 0 0 0 0 5 0
>> 0 0 0 0 0 6
>>
>> one could have a fill = first item, also in the upper triangle:
>>
>> ({~ d...@#) '*abcdef'
>> a*****
>> *b****
>> **c***
>> ***d**
>> ****e*
>> *****f
>>
>> diag=: {.~&....@}.@i.
>>
>>
>> R.E. Boss
>>
>>
>> > -----Oorspronkelijk bericht-----
>> > Van: [email protected] [mailto:programming-
>> > [email protected]] Namens Gilles Kirouac
>> > Verzonden: donderdag 23 april 2009 17:43
>> > Aan: Programming forum
>> > Onderwerp: Re: [Jprogramming] diagonal arrays
>> >
>> >
>> > I just read this thread of last October.
>> >
>> > The following phrase based on Take is type independent, accepts
>> > duplicates and fill elements. It does not "manipulate" data with
>> > * or /: or move it around with $ . It also handles an empty argument.
>> > Concise enough? a matter of compromise.
>> >
>> > diagonal =: ( {."_1~ -@:>:@:i.@:# )
>> >
>> > diagonal 99 1x1 0 _1j1 99
>> > 99 0 0 0 0
>> > 0 2.71828 0 0 0
>> > 0 0 0 0 0
>> > 0 0 0 _1j1 0
>> > 0 0 0 0 99
>> >
>> > <diagonal 'a b c d ' NB. suitable for text-diamond 2009/04/17
>> > +--------+
>> > |a |
>> > | |
>> > | b |
>> > | |
>> > | c |
>> > | |
>> > | d |
>> > | |
>> > +--------+
>> >
>> > diagonal (<s: ' tra'),<"0] 99 1x1 0 _1j1 99
>> > +----+--+-------+-+----+--+
>> > |`tra| | | | | |
>> > +----+--+-------+-+----+--+
>> > | |99| | | | |
>> > +----+--+-------+-+----+--+
>> > | | |2.71828| | | |
>> > +----+--+-------+-+----+--+
>> > | | | |0| | |
>> > +----+--+-------+-+----+--+
>> > | | | | |_1j1| |
>> > +----+--+-------+-+----+--+
>> > | | | | | |99|
>> > +----+--+-------+-+----+--+
>> >
>> > diagonal a:,3#<+`-
>> > ++-----+-----+-----+
>> > || | | |
>> > ++-----+-----+-----+
>> > ||+-+-+| | |
>> > |||+|-|| | |
>> > ||+-+-+| | |
>> > ++-----+-----+-----+
>> > || |+-+-+| |
>> > || ||+|-|| |
>> > || |+-+-+| |
>> > ++-----+-----+-----+
>> > || | |+-+-+|
>> > || | ||+|-||
>> > || | |+-+-+|
>> > ++-----+-----+-----+
>> >
>> > $diagonal ''
>> > 0 0
>> >
>> > The lower triangle can be filled with a constant fill atom
>> > (type dependent):
>> >
>> > ( {.!.'.'"_1~ -@:>:@:i.@:# )'abcdef'
>> > a
>> > .b
>> > ..c
>> > ...d
>> > ....e
>> > .....f
>> > or with a variable fill atom (but not tacitly in this form I think):
>> > '*'( 4 : '(->:i.# y) {.!.x "_1 y' ) 'abcdef'
>> > a
>> > *b
>> > **c
>> > ***d
>> > ****e
>> > *****f
>> >
>> > ~ Gilles
>> >
>> > ---------- Original Message -----------
>> > From: "Raul Miller" <[email protected]>
>> > To: "Programming forum" <[email protected]>
>> > Sent: Sat, 11 Oct 2008 14:40:18 -0400
>> > Subject: [Jprogramming] diagonal arrays
>> >
>> > > Given a vector, put it on the diagonal of an array:
>> > >
>> > > (<0 1)&|:inv 2 7 9 20
>> > > |index error
>> > > (+/ .*(e.(<0 1 2 )&|:)@i.@(3##)) 2 7 9 20
>> > > 2 0 0 0
>> > > 0 7 0 0
>> > > 0 0 9 0
>> > > 0 0 0 20
>> > > (, $~ 2##)@(,"0 1*&0)2 7 9 20
>> > > 2 0 0 0
>> > > 0 7 0 0
>> > > 0 0 9 0
>> > > 0 0 0 20
>> > >
>> > > Are there more concise approaches, that work?
>> > >
>> > > Thanks,
>> > >
>> > > --
>> > > Raul
>> > > ----------------------------------------------------------------------
>> > > For information about J forums see http://www.jsoftware.com/forums.htm
>> > ------- End of Original Message -------
>> >
>> > ----------------------------------------------------------------------
>> > 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
>
--
http://www.ixquick.com/
Ixquick Protects Your Privacy!
The only search engine that does not record your IP address.
http://www.vivapalestina.org/
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm