将向量元素乘以向量得到 Return 方阵
Multiply Vector Elements by Vector to Return a Square Matrix
我是 APL 的新手,我正在努力将向量 v 的每个元素与向量相乘,使得它 return 是一个 n x n 方阵,其中 n 是向量的长度。
例如,
v ← 1 0 0 1.
我试图创建一个函数,例如:
⍳⍴v{⍵×⍵[⍺]}v
1 4 9 16
我无法通过向量迭代 ioda,这是我需要指导的一部分。我的总体目标是return一个矩阵:
v_1 x v --> 1 0 0 1
v_2 x v --> 0 0 0 0
v_3 x v --> 0 0 0 0
v_4 x v --> 1 0 0 1
我会继续努力解决这个问题。感谢任何帮助,谢谢!
"Outer product"前来救援:
(⍳10)∘.×⍳10
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
顺便说一句,如果您正在尝试学习 Dyalog APL,我建议您看看“Mastering Dyalog APL”。如果您正在尝试学习不同的方言,我建议您考虑改用 Dyalog。 (我是 Dyalog-Fanboy,20 年前自己做出了改变。今天 Dyalog 似乎实际上是唯一一个积极开发和增强的 APL-Interpreter...)
我是 APL 的新手,我正在努力将向量 v 的每个元素与向量相乘,使得它 return 是一个 n x n 方阵,其中 n 是向量的长度。
例如,
v ← 1 0 0 1.
我试图创建一个函数,例如:
⍳⍴v{⍵×⍵[⍺]}v
1 4 9 16
我无法通过向量迭代 ioda,这是我需要指导的一部分。我的总体目标是return一个矩阵:
v_1 x v --> 1 0 0 1
v_2 x v --> 0 0 0 0
v_3 x v --> 0 0 0 0
v_4 x v --> 1 0 0 1
我会继续努力解决这个问题。感谢任何帮助,谢谢!
"Outer product"前来救援:
(⍳10)∘.×⍳10
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
顺便说一句,如果您正在尝试学习 Dyalog APL,我建议您看看“Mastering Dyalog APL”。如果您正在尝试学习不同的方言,我建议您考虑改用 Dyalog。 (我是 Dyalog-Fanboy,20 年前自己做出了改变。今天 Dyalog 似乎实际上是唯一一个积极开发和增强的 APL-Interpreter...)