我有一个包含对的矩阵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天才来说这可能很容易,但我只是一个可怜的新手。
答案 0 :(得分: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 1
,p sp 2 2 $ 1 0 1 1
和p sp 2 2 $ 2 0 2 1
)