TCL中多个::math::linearalgebra::mkMatrix的容器

TCL中多个::math::linearalgebra::mkMatrix的容器,tcl,Tcl,我想将一个较大的::math::linearagebra::mkMatrix拆分为多个较小的,并将它们存储在列表或任何其他容器中。不幸的是,我没有找到一种方法来处理列表。可以在列表、数组甚至字典中存储多个::math::linearalgebra::mkMatrix吗 我尝试将这些名称存储在一个列表中,然后每当需要mkMtarix时,我就使用[lindex Matrix 0]。然而,这并没有起作用 关于这一点有什么好的材料吗?math::linearalgebra中的大多数命令都希望使用包含矩阵

我想将一个较大的::math::linearagebra::mkMatrix拆分为多个较小的,并将它们存储在列表或任何其他容器中。不幸的是,我没有找到一种方法来处理列表。可以在列表、数组甚至字典中存储多个::math::linearalgebra::mkMatrix吗

我尝试将这些名称存储在一个列表中,然后每当需要mkMtarix时,我就使用[lindex Matrix 0]。然而,这并没有起作用


关于这一点有什么好的材料吗?

math::linearalgebra中的大多数命令都希望使用包含矩阵的变量的名称。这意味着,虽然它们的值可以很好地放在存储列表中,但您不能像那样真正地操纵它们。您最好使用Tcl阵列来完成您的工作。然后你可以去:

# An all-zero 3x3 matrix
set collection(0) [math::linearalgebra::mkMatrix 3 3 0.0]

# Turn it into an identity matrix; notice the use of a variable to name the element
set matrixID 0
for {set i 0} {$i < 3} {incr i} {
    math::linearalgebra::setelem collection($matrixID) $i $i 1.0
}

这是一项功能强大的技术,您可能会发现它非常有用。

谢谢,这项技术非常有效。在我的例子中,阵列是前进的方向!
set matrixX 1
set matrixY 2
for {set i 0} {$i < 3} {incr i} {
    math::linearalgebra::setelem collection($matrixX,$matrixY) $i $i 1.0
}