GNU APL 中带索引参数的行减少
Row Reduction with indexed parameters in GNU APL
我正在使用以下数据结构:
x1a ← 2 1 ⍴ 1 0
x1b ← ⍬
x2a ← 2 2 ⍴ 1 1 0 0
x2b ← 2 1 ⍴ 1 0
x3a ← 1 2 ⍴ 1 0
x3b ← 1
q ← (x3a x3b) (x2a x2b) (x1a x1b)
并尝试与以下操作等效的行缩减:
output ← x3b + x3a +.× x2b + x2a +.× x1a
我原以为结果会类似于以下内容,但我无法得到正确的 rank/operations 工作:
{⍵[2] + ⍺[1] +.× ⍵[1]}/q
感谢任何建议或帮助!
存在三个问题:
您正在使用 ⍵[1]
,这将为您提供 ⍵
的封闭元素。请改用 ⊃
"pick"。
你打错了:⍵[2]
应该用⍺
代替,即2⊃⍺
你减少的函数期望它的右参数是一个二元素向量,它只使用第一个元素。因此下一次迭代需要return这样的结构。
另请注意,由于 /
需要将等级从 1 降低到 0,结果将同时包含在内,并且还会插入虚拟元素,因此我们需要选择第一个元素唯一元素,即⍬ 1⊃
:
x3b + x3a +.× x2b + x2a +.× x1a
3
⍬ 1⊃{((2⊃⍺) + (1⊃⍺) +.× (1⊃⍵)) 'dummy'}/q
3
我正在使用以下数据结构:
x1a ← 2 1 ⍴ 1 0
x1b ← ⍬
x2a ← 2 2 ⍴ 1 1 0 0
x2b ← 2 1 ⍴ 1 0
x3a ← 1 2 ⍴ 1 0
x3b ← 1
q ← (x3a x3b) (x2a x2b) (x1a x1b)
并尝试与以下操作等效的行缩减:
output ← x3b + x3a +.× x2b + x2a +.× x1a
我原以为结果会类似于以下内容,但我无法得到正确的 rank/operations 工作:
{⍵[2] + ⍺[1] +.× ⍵[1]}/q
感谢任何建议或帮助!
存在三个问题:
您正在使用
⍵[1]
,这将为您提供⍵
的封闭元素。请改用⊃
"pick"。你打错了:
⍵[2]
应该用⍺
代替,即2⊃⍺
你减少的函数期望它的右参数是一个二元素向量,它只使用第一个元素。因此下一次迭代需要return这样的结构。
另请注意,由于 /
需要将等级从 1 降低到 0,结果将同时包含在内,并且还会插入虚拟元素,因此我们需要选择第一个元素唯一元素,即⍬ 1⊃
:
x3b + x3a +.× x2b + x2a +.× x1a
3
⍬ 1⊃{((2⊃⍺) + (1⊃⍺) +.× (1⊃⍵)) 'dummy'}/q
3