I do like the LHS  (=/S:0 {  ({:"1 A);({."1 B))  

R.E. Boss


> -----Oorspronkelijk bericht-----
> Van: programming-boun...@forums.jsoftware.com 
> [mailto:programming-boun...@forums.jsoftware.com] Namens EelVex
> Verzonden: dinsdag 16 oktober 2012 7:14
> Aan: programm...@jsoftware.com
> Onderwerp: Re: [Jprogramming] stitching matrices
> 
> If elegant == short-tacit then Aai's way seems to be the best path to take.
> 
> Otherwise, `catalogue` presents some nice options, like:
> 
>    (=/S:0 {  ({:"1 A);({."1 B))  #   (;S:1  {  <"1&.>A;}."1 B)
> 
> 
> 
> 
> On Mon, Oct 15, 2012 at 8:21 PM, Raul Miller <rauldmil...@gmail.com> wrote:
> 
> > Ok, thank you!  I am going to blame my confusion about {: vs. {. on my
> > browser font, where both : and . get only a single pixel per dot on my
> > laptop's screen.  I can see the difference if I focus on it, but I
> > should have copied those phrases rather than retyping them.
> >
> > That said... note that the asymmetric treatment of A and B ({: vs. {.
> > and the dropping of one column of B and the reordering of the
> > representation of B in the result) all require code to express.
> >
> > Also, the most concise expression would be O(A */@,&$ B) and and it's
> > tempting to try to make this more efficient, by keying on the join
> > column.  But that leaves me with something like this:I
> >
> >  join1=:4 :0
> >   jA=. {:"1 A=.x
> >   jB=. {."1 B=.y
> >   u=. jA ([ -. -.)&~. jB
> >   uA=. (jA e. u) # A
> >   tuB=. (jB e. u) # B
> >   uB=. (/: u&i.@:({."1)) tuB
> >   juA=. {:"1 uA
> >   juB=. {."1 uB
> >   bA=. juA </. uA
> >   bB=. juB </. uB
> >   ; bA ,/@:(,"1/)each bB
> > )
> >
> > Something like Aai's proposal (;A ((,}.)"1 <@#~ (=&{: |.)"1)"1 _ B) is
> > going to be much more elegant, in my opinion...
> >
> > --
> > Raul
> >
> > On Mon, Oct 15, 2012 at 12:33 PM, R.E. Boss <r.e.b...@planet.nl> wrote:
> > > NB. ({:"1 A)  equals {."1 B
> > >  so not the leading column of A
> > >
> > > Perhaps I should have added that ({:"1 A)  =&~.  {."1 B
> > >  or all not matching rows are deleted.
> > >
> > >
> > > R.E. Boss
> > >
> > >
> > >> -----Oorspronkelijk bericht-----
> > >> Van: programming-boun...@forums.jsoftware.com [mailto:
> > programming-boun...@forums.jsoftware.com] Namens Raul Miller
> > >> Verzonden: maandag 15 oktober 2012 18:24
> > >> Aan: programm...@jsoftware.com
> > >> Onderwerp: Re: [Jprogramming] stitching matrices
> > >>
> > >> Given your description, I would have expected a result like this:
> > >>
> > >> 0 1 2 0 1 1 2 0
> > >> 0 1 2 0 1 1 2 0
> > >> 2 0 1 2 0 0 1 2
> > >> 1 2 0 1 2 2 0 1
> > >> 1 2 0 1 2 2 0 1
> > >>
> > >> I do not understand the result  you proposed.
> > >>
> > >> Also, you have not specified what happens for rows where the leading
> > >> column of A has a value which does not appear in the leading column of
> > >> B.  I can imagine several treatments for this case:
> > >>
> > >> 1) error
> > >> 2) join to a row of fills
> > >> 3) eliminate the row from the result
> > >>
> > >> Likewise for the reverse case, where the leading column of B has a
> > >> value which does not appear in the leading column of A.  (And, the
> > >> asymmetric treatment of A and B, where one of the columns of B does
> > >> not contribute to the result, makes me wonder if the treatment for
> > >> {."1 A not in {."1 B might be different from from the treatment of
> > >> {."1 B not in {."1 A.)
> > >>
> > >> So... I am confused.  Any clarification or explanation you can provide
> > >> could help.
> > >>
> > >> Thanks,
> > >>
> > >> --
> > >> Raul
> > >>
> > >> On Mon, Oct 15, 2012 at 10:59 AM, R.E. Boss <r.e.b...@planet.nl> wrote:
> > >> > Given
> > >> >
> > >> >    ['A B' =. 3|L:0<@i."(1)3 5,: 5 4
> > >> > +---------+-------+
> > >> > |0 1 2 0 1|0 1 2 0|
> > >> > |2 0 1 2 0|1 2 0 1|
> > >> > |1 2 0 1 2|2 0 1 2|
> > >> > |         |0 1 2 0|
> > >> > |         |1 2 0 1|
> > >> > +---------+-------+
> > >> >
> > >> > I want to stitch every row from A with all rows from B where ({:"1 A)
> >  equals {."1 B and one of these columns is deleted.
> > >> > This will give me
> > >> >
> > >> >     A  foo B
> > >> > 0 1 2 0 1 2 0 1
> > >> > 0 1 2 0 1 2 0 1
> > >> > 2 0 1 2 0 1 2 0
> > >> > 2 0 1 2 0 1 2 0
> > >> > 1 2 0 1 2 0 1 2
> > >> >
> > >> > Any elegant solutions?
> > >> >
> > >> >
> > >> > R.E. Boss
> > >> >
> > >> > ----------------------------------------------------------------------
> > >> > 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