如何使用 TCL 线性代数包来设置矩阵的元素

How can I use TCL linear algebra package for setting the elemnt of a matrix

我正在尝试使用 ::math::linearalgebra:: 程序包进行一些简单的特征值计算以进行测试。以下代码有效并产生所需的结果:

package require math
package require math::linearalgebra    
set Mat [::math::linearalgebra::mkMatrix 8 8 0.0]
puts "a single row is: [::math::linearalgebra::getrow $Mat 0 ] "

然而,当我尝试更改矩阵 Mat 的一个元素时,出现错误:

set Mat [::math::linearalgebra::mkMatrix 8 8 0.0]
 ::math::linearalgebra::setelem $Mat 0 1 1.0]
puts "a single row is: [::math::linearalgebra::getrow $Mat 0 ] "

错误是:

can't read "mat": no such variable while executing "lset mat $row $col $newvalue" (procedure "::math::linearalgebra::setelem" line 4)

如果不使用 ::setelem,如何修改创建的矩阵的元素?

谢谢

根据 manual,您必须给出矩阵的 名称。因此你应该这样做:

set Mat [::math::linearalgebra::mkMatrix 8 8 0.0]
::math::linearalgebra::setelem Mat 0 1 1.0