私は10行10列の行列を持っています。私はリストの各要素が各行から2つの数字1になるtclリストを作成したいと思う。 は、例えば私の行列が、私は要素$a $b
、$f $g
、$k $l
、$p $q
が含まれているリストを持つようにしたい行列の最初の2列のtclリストを作成する
$a $b $c $d $e
$f $g $h $i $j
$k $l $m $n $o
$p $q $r $s $t
ある場合。 誰かがこれを行う方法を教えてもらえますか?
私は10行10列の行列を持っています。私はリストの各要素が各行から2つの数字1になるtclリストを作成したいと思う。 は、例えば私の行列が、私は要素$a $b
、$f $g
、$k $l
、$p $q
が含まれているリストを持つようにしたい行列の最初の2列のtclリストを作成する
$a $b $c $d $e
$f $g $h $i $j
$k $l $m $n $o
$p $q $r $s $t
ある場合。 誰かがこれを行う方法を教えてもらえますか?
リストのリストは、あなたの行列と仮定すると、あなたが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}
こんにちはグレン、私はtcl8.4を持っています。 lmapはサポートされていません。 –
2番目のコードスニペットをこのページ(https://wiki.tcl.tk/40570)からコピーします。あなたのプログラムに入れて、あなたは 'lmap'を持っています。可能であれば、Tcl 8.4は時代遅れです。 –
感謝のピーター、それは魅力のように働いた。 –
Tcllibでstruct::matrix
packageで定義されているあなたは、マトリックスを使用している場合は、次の操作を行います。
set pairlist [$matrix get rect 0 0 1 end]
注:行列の名前はmatrix
変数にあり、rect
は「矩形」の略語、0 0
は抽出する矩形の左上隅の行列に座標を与え、1 end
は、矩形の右下隅の行列の座標を返します(行列ははTclの文字列とリストのように最後の行や列を意味します)。
以前にTclリストを作成しましたか?あなたが望むものがリストを含むリストのように聞こえる。これは可能です。しかし、これまでに何を試しましたか? –