To answer your last question first, it looks like "1/2" means rank 1 or rank
2, e.g.

   (1 0 1 0,:1 0 0 1) <;.1 i. 4 4
+---------+-----------+
|0 1 2 3  | 8  9 10 11|
|4 5 6 7  |12 13 14 15|
+---------+-----------+
|0 1  2  3|12 13 14 15|
|4 5  6  7|           |
|8 9 10 11|           |
+---------+-----------+

applies each rank 1 element of the boolean left argument.  So, the "1 0 1 0"
returns the evenly divided first row of the result and the "1 0 0 1" returns
the uneven division in the second result row.

With integer rank 2 left arguments like this

   ((0 0,:2 2),:1 1,:3 3) <;.0 i. 4 4
+---+--------+
|0 1| 5  6  7|
|4 5| 9 10 11|
|   |13 14 15|
+---+--------+

it applies each rank 2 of the numeric left argument, so you get a 2x2
starting at position (0,0) for the first left-hand matrix and a 3x3 starting
at position (1,1) for the second.

As far as adding up rows within the partitions, here's a few ways.

   (1 0 1;1 0 0 1) <;.1 i. 3 4
+------+--+
|0 1 2 |3 |
|4 5 6 |7 |
+------+--+
|8 9 10|11|
+------+--+

I changed the left argument from your example because it's more interesting
to have more than one row in some of the addends.

So, you can sum after partitioning:

   +/&.>(1 0 1;1 0 0 1) <;.1 i. 3 4
+------+--+
|4 6 8 |10|
+------+--+
|8 9 10|11|
+------+--+

Or without partitioning

   (1 0 1;1 0 0 1) +/;.1 i. 3 4
 4 6  8
10 0  0

 8 9 10
11 0  0

But this gives you extraneous zeros because of the padding required to
equalize the rows of the unenclosed result.

Lastly, you can enclose and sum at the same time:

   (0 1 1;1 0 0 1) ([:<+/);.1 i. 3 4
+------+--+
|4 5 6 |7 |
+------+--+
|8 9 10|11|
+------+--+

Hope this helps.

On Sun, Oct 19, 2008 at 8:57 AM, Don Guinn <[EMAIL PROTECTED]> wrote:

> Playing with J for C and got to "Apply On Specified Partitions: Dyad u;.1
> and u;.2". Replaced the < with +/ and it didn't sum the rows. After looking
> at the result a little more closely I discovered that each cell contained a
> table instead of a row.
>   (0 1 1;1 0 0 1) <;.1 i. 3 4
> +------+--+
> |4 5 6 |7 |
> +------+--+
> |8 9 10|11|
> +------+--+
>   (0 1 1;1 0 0 1) (<@$);.1 i. 3 4
> +---+---+
> |1 3|1 1|
> +---+---+
> |1 3|1 1|
> +---+---+
>
> I can't figure out why.
>
> Also, in the Dictionary for Cut it describes the rank as "_ 1/2 _". What
> does the "1/2" mean? Needless to say, I still have a long way go to fully
> understand Cut.
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>



-- 
Devon McCormick, CFA
^me^ at acm.
org is my
preferred e-mail
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to