First off, this is a good question.
That said, it's matrix divide because we are "dividing by" a matrix.
But maybe it's easier to illustrate this than explain it:
'A B C'=:ABC=: p:i.3 3 3
ABC%.A
3.92308 4 2.25641
2 1.84615 1.58974
0.923077 _0.410256 _0.974359
5.23077 5 6.23077
6 3.46154 3.23077
2.23077 3.23077 0.923077
_4.30769 _4 _3.64103
_3 _0.615385 0.025641
1.69231 2.02564 4.4359
A+/ .*ABC%.A
2 3 5
7 11 13
17 19 23
29 31 37
41 43 47
53 59 61
67 71 73
79 83 89
97 101 103
Compare this with:
A%.A
1 0 0
0 1 0
0 0 1
In other words, %. would not work for higher ranked arrays if its left
rank was 2.
I hope this makes sense,
--
Raul
On Mon, May 16, 2022 at 1:20 PM Adrien Mathieu
<[email protected]> wrote:
>
> Hello,
>
> I was wondering why the matrix divide (dyadic %.) had rank _ 2. It would
> seem logical to me that it should be 2 2, since it's *matrix* division
> (and, indeed, the right rank is 2), and I find it hard to picture what a
> 3-dimentional array divided by a 2-dimentional array would be. Is it a
> mistake on NuVoc?
>
> Adrien Mathieu
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm