创建矩阵前2列的tcl列表

创建矩阵前2列的tcl列表,tcl,Tcl,我有10行10列的矩阵。我想用板条箱包装tcl列表,其中列表中的每个元素都是2个数字,每行1个。 e、 如果我的矩阵是 $a $b $c $d $e $f $g $h $i $j $k $l $m $n $o $p $q $r $s $t 我想要一个包含元素的列表$a$b,$f$g,$k$l,$p$q。 有人能告诉我怎么做吗?假设您的矩阵是一个列表列表,您可以使用: 假设您的矩阵是一个列表列表,您可以使用: 如果您使用的是Tcllib中定义的矩阵,请执行以下操作: set pa

我有10行10列的矩阵。我想用板条箱包装tcl列表,其中列表中的每个元素都是2个数字,每行1个。 e、 如果我的矩阵是

$a $b $c $d $e  
$f $g $h $i $j  
$k $l $m $n $o  
$p $q $r $s $t  
我想要一个包含元素的列表
$a$b
$f$g
$k$l
$p$q

有人能告诉我怎么做吗?

假设您的矩阵是一个列表列表,您可以使用:


假设您的矩阵是一个列表列表,您可以使用:


如果您使用的是Tcllib中定义的矩阵,请执行以下操作:

set pairlist [$matrix get rect  0 0  1 end]

注意:矩阵的名称在
matrix
变量中,
rect
是“矩形”的缩写,
0
给出要提取的矩形左上角矩阵中的坐标,
1 end
给出矩形右下角矩阵中的坐标(矩阵支持
end
表示最后一行和/或列,就像Tcl字符串和列表一样)。

如果您使用的是由in-Tcllib定义的矩阵,请执行以下操作:

set pairlist [$matrix get rect  0 0  1 end]
注意:矩阵的名称在
matrix
变量中,
rect
是“矩形”的缩写,
0
给出要提取的矩形左上角矩阵中的坐标,
1 end
给出矩形右下角矩阵中的坐标(矩阵支持
end
表示最后一行和/或列,就像Tcl字符串和列表一样)

这应该会产生结果


这应该会产生结果

你以前创建过Tcl列表吗?听起来你想要的是一个包含列表的列表。这是可能的。但是你到目前为止尝试了什么?你以前创建过Tcl列表吗?听起来你想要的是一个包含列表的列表。这是可能的。但是你到目前为止尝试了什么?嗨,格伦,我有tcl8.4。那么不支持lmap。请复制此页中的第二个代码段:。将其放入您的程序中,您就有了
lmap
。此外,如果可能,请升级,Tcl 8.4已过时。您好,Glenn,我有tcl8.4。因此不支持lmap。请复制此页中的第二个代码段:。将其放入您的程序中,您就有了
lmap
。如果可能,请升级,Tcl 8.4已过时。
package require struct::matrix 

struct::matrix data
data add columns 5
data add rows    4

data set rect 0 0 {
{a b c d e}
{f g h i j}
{k l m n o}
{p q r s t}
}

data get rect 0 0 1 end
# {a b} {f g} {k l} {p q}