1

我有一个M包含对的矩阵(即大小为 2 的数组)。给定一对p,如何获得M'包含 的标量积p和 的每个元素的结果的二维矩阵M

    (0, 0) (0, 1)                             8 5
M = (1, 0) (1, 1)       p = (2, 2)       M' = 5 2
    (2, 0) (2, 1)                             4 1

M并被p定义:

M =. 3 2 2 $ 0 0 0 1 1 0 1 1 2 0 2 1
p =. 2 2

我在 J 有一个标量积的实现:

sp =. +/ @: *: @: -

它适用于对:

    0 0 sp p
8
    0 1 sp p
5

但不是在完整矩阵上,因为长度不好:

    p sp M
|length error: sp
|   p     sp M

我应该如何处理?这对 J 天才来说可能很容易,但我只是一个可怜的新手。

4

1 回答 1

3

利用

p sp"1 M
 8 5
 5 2
 4 1

您想sp在这里读取 M 的第一级单元格:

<"1 M
┌───┬───┐
│0 0│0 1│
├───┼───┤
│1 0│1 1│
├───┼───┤
│2 0│2 1│
└───┴───┘

所以sp"1将适用于每个单元格(p sp 0 0,,p sp 0 1等)。sp(无限秩)尝试对整个矩阵 M 应用一次 sp。

同样sp"2适用sp于 M 的二阶单元:

<"2 M
 ┌───┬───┬───┐
 │0 0│1 0│2 0│
 │0 1│1 1│2 1│
 └───┴───┴───┘

所以

p sp"2 M
 8 5
 2 5
 0 5

(对p sp 2 2 $ 0 0 0 1p sp 2 2 $ 1 0 1 1p sp 2 2 $ 2 0 2 1

于 2012-07-16T23:09:32.930 回答