根据罗塞塔代码,在 APL 中有两种创建单位矩阵的惯用方法:
1. ID←{∘.=/⍳¨ ⍵ ⍵}
2. ID←{⍵ ⍵ ρ 1, ⍵ρ0}
(2)如何运作?为什么这比 (1) 更好,后者使用 APL 中惯用的方法外积?
1,⍵⍴0
创建一个向量,其中包含1
其次是⍵
零。所以,这个向量的长度是⍵+1
.
⍵ ⍵ ⍴
涵盖⍵
-by-⍵
矩阵。该向量的副本将从左到右、从上到下适合。第一个副本将覆盖整个第一行并溢出到第二行,例如为了⍵=5
:
1 0 0 0 0
0 . . . .
. . . . .
. . . . .
. . . . .
现在,第二个副本将在第二行上有一点缩进:
. . . . .
. 1 0 0 0
0 0 . . .
. . . . .
. . . . .
依此类推,直到覆盖所有矩阵。它不一定是精确的封面,最后的副本可能被剪掉。如果你进一步想象这个过程,你会发现1
-s 将落在主对角线上。
我不知道为什么这应该是比使用外部产品更好的方法。看起来都不错。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)