我正在学习 Io 语言,想知道如何使用列表列表将多个矩阵组合在一起。
到目前为止,这是我的代码:
mA := List clone
mA := list(list(1, 2, 3), list(4, 5, 6), list(7, 8, 9))
mB := List clone
mB := list(list(1, 2, 3), list(4, 5, 6), list(7, 8, 9))
mC := List clone
mC := list(list(0, 0, 0), list(0, 0, 0), list(0, 0, 0))
i := 0
j := 0
k := 0
for(i, 0, mA size,
for(j, 0, mB size (at(0)),
for(k, 0, mB size,
mC atPut(mC at(i) at(j), mC at(i) at(j) + mA at(i) at(k) * mB at(k) at(j))
)
)
)
当我通过它运行这段代码时,它说有一个错误说“nil 不响应'*'”。因此,我实际上在嵌套的 for 循环中进行乘法运算时,它会越界进入列表。至少这是我认为它正在做的事情,因此是错误。我不太确定还有什么可以将 for 循环更改为。我什至将它们更改为 2 和 3,因为这是我要测试的矩阵列表的大小,但出现了相同的错误。