创建矩阵

时间:2017-07-09 06:56:53

标签: tcl

我有10行10列的矩阵。我想要列出tcl列表,其中列表的每个元素将是每行2个数字.1。     例如,如果我的矩阵是

$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的列表。 有人能告诉我怎么做吗?

3 个答案:

答案 0 :(得分:0)

假设您的矩阵是列表列表,您可以使用the lmap command

$ tclsh
% set matrix {
{a b c d e}
{f g h i j}
{k l m n o}
{p q r s t}
}

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

% lmap sublist $matrix {lrange $sublist 0 1}
{a b} {f g} {k l} {p q}

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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}

这应该会产生结果