Raul -
Thanks for your elaborate answer to my rank question, much appreciated.
I think I've been able to grasp most of it (especially the remark on
getting rank implicitly).
Your next to last sentence reads, I quote,
"Put differently, we do not need the "1 (from 1 {"1 y) because we get
an implicit "0 from our use of @ (in 1&{@#:)"
Q: Should this read "... because we get an ** implicit "1 ** from our
use of ..."..?
If not, then I'm most probably still missing something.
Thanks
-M
At 2016-06-10 18:19, you wrote:
So, ok, rank... The question, I imagine, is: how does rank help you
understand how to get from 1 {"1 (3 5 5 #: i. 3 5 5)
to (1&{@#:i.)3 5 5 But let's try that from another angle. Let's
instead unfold the hook, giving us: 3 5 5 (1&{@#: i.) 3 5 5 Here,
we can see just a bit more clearly that we are using the dyadic
definition of #: And, if we recall
http://www.jsoftware.com/help/dictionary/dictb.htm we might remember
that the three numbers in rank are: Monadic rank; Left dyadic
rank; Right dyadic rank So, since the rank of #: is _ 1 0, this
means its left dyadic rank is 1 and its right dyadic rank is 0.
Also, a verb u@v derived using @ has the rank of v. So, 1&{@#: has a
left dyadic rank of 1 and a right dyadic rank of zero. Or, thinking
about this from a different direction, each rank 1 element of the
result of #: was formed based on a left argument of 3 5 5 and a
single (rank 0) number from the right argument. Put differently, we
do not need the "1 (from 1 {"1 y) because we get an implicit "0 from
our use of @ (in 1&{@#:). Put differently, we can often skip using
rank because in this case we get its effect implicitly. I hope this
helps? Thanks, -- Raul On Fri, Jun 10, 2016 at 1:02 PM, Martin
Kreuzer <[email protected]> wrote: > Raul - > > So back to square
One, totally different approach. (Most of this again for > my
reference.) > > I reviewed (x #: y) by the 'time'
example > > hms=. 24 60 60 & #: > hms 3600 1825 1201 930 >
1 0 0 > 0 30 25 > 0 20 1 > 0 15 30 > > Each atom on the right
produces a list (3 items each in this case, according > to the given
dividers 60 60 24). > > This lead to understanding this
structure > > 2 3 #: i.7 > 0 0 > 0 1 > 0 2 > 1 0 > 1 1 > 1 2 > 0
0 > > Replacing the right argument list by a table > > i. 2 3 > 0
1 2 > 3 4 5 > > 2 3 #: i. 2 3 > 0 0 > 0 1 > 0 2 > > 1 0 > 1 1 > 1
2 > > each table element produced a 2-item-list (2 rows, 2 result
blocks). > > Given this table > > i. 3 3 > 0 1 2 > 3 4 5 > 6 7
8 > > one can retrieve the 2nd row or 1st column respectively
depending on rank > used on 'From' (x { y): > > 1 {"2 i. 3
3 NB. rank 2 gets the row > 3 4 5 > 0 {"1 i. 3 3 NB. rank 1
gets the column > 0 3 6 > > If there are several (layout-identical)
matrices, it will pick from the same > place in each matrix > > 0
{"1 (2 3 #: i. 2 3) NB. 1st column from each > 0 0 0 > 1 1 1 > >
In the original exercise (Bo's question) we would be after the 2nd
column: > > 1 {"1 (3 5 5 #: i. 3 5 5) NB. 2nd column from
each > 0 0 0 0 0 > 1 1 1 1 1 > 2 2 2 2 2 > 3 3 3 3 3 > 4 4 4 4 4 > >
0 0 0 0 0 > 1 1 1 1 1 > 2 2 2 2 2 > 3 3 3 3 3 > 4 4 4 4 4 > > 0 0 0
0 0 > 1 1 1 1 1 > 2 2 2 2 2 > 3 3 3 3 3 > 4 4 4 4 4 > > Going tacid
(step by step) I arrived at these lines: > > 1 {"1 (#: i.) 3 5
5 > (1 & {"1 @ #: i.) 3 5 5 > > which is very near to your
solutiion > > (1 & { @ #: i.) 3 5 5 > > (I had a look at (#:"#:)
and (#: b.0) but can't figure out the relevance.) > > Q: Why is it
that one may skip the rank notation at this time > which had seemed
so crucial in the beginning..? > > Thanks > -M > > > At 2016-06-10
10:51, you wrote: >> >> Try this: 3 5 5 #: i. 3 5 5 Then try
this: 1 {"1 (3 5 5 #: i. 3 5 5) >> Then try this: #:"#: I hope
that helps, Thanks, -- Raul On Fri, Jun 10, >> 2016 at 6:38 AM,
Martin Kreuzer <[email protected]> wrote: > Raul - > > >>
Following this thread, I managed to grasp (reproduce) the expression
(0 2 1 >> > |: 3 5 5 $ i. 5) which Bo found satisfactory. > >
Challenged by your >> remark "But probably no easier to read." I
have tried to > sort of >> reconstruct your approach: > > First I
read up on dyadic Antibase (x #: y) >> and found the remainder
example; > thus > > > ,(i. 10) ;(5 #: i. 10) > 0 >> 1 2 3 4 5 6 7
8 9 > 0 1 2 3 4 0 1 2 3 4 > > Producing this square matrix > > >> i.
5 5 > 0 1 2 3 4 > 5 6 7 8 9 > 10 11 12 13 14 > 15 16 17 18
19 > >> 20 21 22 23 24 > > and applying the above I got > > 5 #:
i. 5 5 > 0 1 2 3 >> 4 > 0 1 2 3 4 > 0 1 2 3 4 > 0 1 2 3 4 > 0 1 2 3
4 > > and (5 #: i. 3 5 5) >> got me three blocks of those. > >
Changing the axis preference (?) switched >> rows and
columns > > 1 0 |: 5 #: i. 5 5 > 0 0 0 0 0 > 1 1 1 1 1 > 2 2 2
2 >> 2 > 3 3 3 3 3 > 4 4 4 4 4 > > and in the case of the three
blocks this would >> be written as (0 2 1 |: 5 #: > i. 3 5 5) as the
number of blocks remains >> untouched. > > What seemed to me a
shortcut for the special case of a >> three-dimensinal > arrangement
of square matrices this gives the same >> result: > > 1 |: 5 #:
i. 3 5 5 > 0 0 0 0 0 > 1 1 1 1 1 > 2 2 2 2 2 > 3 3 >> 3 3 3 > 4 4 4
4 4 > > 0 0 0 0 0 > 1 1 1 1 1 > 2 2 2 2 2 > 3 3 3 3 3 > 4 4 4 >> 4
4 > > 0 0 0 0 0 > 1 1 1 1 1 > 2 2 2 2 2 > 3 3 3 3 3 > 4 4 4 4 4 > >
Using >> brackets I could write that as > (1 |: 5 #: i.) 3 5 5 >
replacing the (5) >> by grabbing it from the list like (1 { 3 5 5) >
I continued to > (1 |: 1 >> & { #: i.) 3 5 5 > which looked
promising. > > It looked to me as you were >> taking advantage of
the (1) being mentioned > there twice and therefore >> combining,
but ... > Q: Could you enlighten me on this final step..? > > >>
Thanks > -M > > > > > At 2016-06-10 06:51, you wrote: >> >> I just
stumbled >> across this. It occurs to me that (1&{@#:i.)3 5 5
would >> be one character >> shorter. But probably no easier to
read. Thanks, -- Raul On >> Wed, Jun 8, >> 2016 at 5:31 PM, 'Bo
Jacoby' via Programming >> <[email protected]> >> wrote: >
Thanks everyone! > This: > 0 2 1|:3 >> 5 5$i.5 > > produces
what >> I wanted. > The result is however destroyed in the >>
process of emailing it >> to [email protected] . Line feeds
are >> deleted. I don't know >> why. > Problem is solved. Thanks
again. > Bo. > > >> Den 21:10 onsdag den 8. >> juni 2016 skrev Cliff
Reiter >> <[email protected]>: > > > > Or > ,./": >> 3 5$"1 0
i.5 > > 0 0 0 0 01 1 1 >> 1 12 2 2 2 23 3 3 3 34 4 4 4 4 > > 0 0
0 >> 0 01 1 1 1 12 2 2 2 23 3 3 3 34 4 4 >> 4 4 > > 0 0 0 0 01 1 1 1
12 2 2 2 23 >> 3 3 3 34 4 4 4 4 > > But a strange >> thing to want
to build. > > On >> 6/8/2016 1:37 PM, robert therriault wrote: >> >>
Maybe this? >> >> 5( 3 >> # ,:@,@":@:(#/"0)) i. 5 >> 0 0 0 0
01 1 1 1 12 >> 2 2 2 23 3 3 3 34 4 4 4 4 >> >> 0 0 0 0 01 1 1 1 12 2
2 2 23 3 3 3 34 4 4 4 4 >> >> 0 0 0 0 01 1 1 1 12 2 >> 2 2 23 3 3 3
34 4 4 4 4 >> >> But I am confused as >> well about the request >>
for a shape 3 5 5 of what appears as a shape 3 45 >> literal matrix.
I do >> have '01' in mine though. :-) >> >> Cheers, bob >> >>> >> On
Jun 8, 2016, at >> 10:29 AM, Raul Miller <[email protected]>
wrote: >>> >> >>> Did you mean >> something like
this? >>> >>> (<.0.8*1+i.25) 10&#./."1] >> 3#,:5# i.5 >>> >> 0 0
0 0 1 1 1 1 12 2 2 2 23 3 3 3 34 4 4 4 4 >>> 0 0 0 0 1 1 >> 1 1 12 2
2 2 >> 23 3 3 3 34 4 4 4 4 >>> 0 0 0 0 1 1 1 1 12 2 2 2 23 3 3 3 34
4 >> 4 4 4 >>> >> >>> Except, that doesn't get you those leading
zeros for the '01' >> column, >> >>> so maybe instead it needs to be
character? >>> >>> But a >> character >> array would not have
anything to do with that 3 5 5 >>> shape you >> >> suggested, so for
that, and guessing what you want, maybe it >>> should be >> >>
something like this? >>> >>> <.25%~i.3 5 5 >>> 0 0 0 0 0 >>> 0 0
0 0 0 >> >> >>> 0 0 0 0 0 >>> 0 0 0 0 0 >>> 0 0 0 0 0 >>> >>> 1 1 1
1 1 >>> 1 1 1 1 1 >> >> >>> 1 1 1 1 1 >>> 1 1 1 1 1 >>> 1 1 1 1
1 >>> >>> 2 2 2 2 2 >>> 2 2 2 2 2 >> >> >>> 2 2 2 2 2 >>> 2 2 2 2
2 >>> 2 2 2 2 2 >>> >>> Except that that >> doesn't >> look at all
like what you asked for. A 5 3 4 >>> shape gets a >> little
closer: >> >>> >>> <.12%~i.5 3 4 >>> 0 0 0 0 >>> 0 0 0 0 >>> 0 0
0 >> 0 >>> >>> 1 1 1 1 >> >>> 1 1 1 1 >>> 1 1 1 1 >>> >>> 2 2 2
2 >>> 2 2 2 2 >>> >> 2 2 2 2 >>> >>> 3 3 >> 3 3 >>> 3 3 3 3 >>> 3 3
3 3 >>> >>> 4 4 4 4 >>> 4 4 4 >> 4 >>> 4 4 4 4 >>> >>> >> But all of
these have conflicts with some aspect of >> your original >>> >>
request, and I can't figure out what it is that you >> really
wanted. >>> >>> I >> hope this helps? >>> >>> Thanks, >>> >>>
-- >>> >> Raul >>> >>> >>> On Wed, Jun >> 8, 2016 at 5:22 AM, 'Bo
Jacoby' via >> Programming >>> >> <[email protected]>
wrote: >>>> Dear J'ers. >>>> >> Please tell me how >> to program the
3 5 5 array below. >>>> I am >> experimenting rather than >>
understanding. I expect the answer to be quite >> elementary. >>>>
Thanks! Bo. >> >>>> >>>> 0 0 0 0 01 1 1 1 12 2 2 2 23 3 3 3 >> 34 4
4 4 4 >>>> 0 0 0 0 01 1 1 >> 1 12 2 2 2 23 3 3 3 34 4 4 4 4 >>>> 0 0
0 >> 0 01 1 1 1 12 2 2 2 23 3 3 3 34 4 >> 4 4 4 >>>> >>>> >> >>
----------------------------------------------------------------------
>>>> >> >> 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 >>
----------------------------------------------------------------------
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