私はTCL言語を学び始めているので、質問は少しシンプルかもしれません。私はベクトルから行列を構築しようとしています。以前に尋ねられた質問を見て、次の考えを見つけました:手続きをファイルに保存
set phi_x [lrepeat 36 [lrepeat 12 0.]]
私のベクトルリストを作成します。次に、リストのベクトルにlsetコマンドを入力します。このコードは正常に動作します
proc printMatrix {myMatrix} {
set height [llength [lindex $myMatrix]]
set width [llength [lindex $myMatrix 0]]
for {set j 0} {$j < $width} {incr j} {
puts -nonewline \Phi$j
}
puts ""
for {set i 0} {$i < $height} {incr i} {
puts -nonewline $i
for {set j 0} {$j < $width} {incr j} {
puts -nonewline \t[lindex $myMatrix $i $j]
}
puts ""
}
:私は、私は別の質問スレッドで発見され、次のように使用します。問題は、プロシージャの結果をファイルに保存できないようです。
set varName [open file.out a]
puts $varName [printMatrix $myMatrix]
close $varName
ありがとうございました!
あなたの手順では、空の文字列がファイルに書き込まれる場合には任意の値を、返却されていないようです。 'puts'文はファイルではなく標準出力にのみ影響します。 –
このプロシージャは、前に定義したリストに含まれるベクトルの値を画面で返します。リストは、 を使用して作成されます。phi_x [lrepeat 36 [lrepeat 12 0.]] "myMatrix"は "phi_x"です。混乱してごめんなさい=( – John
このプロシージャはすべての値を返すコマンドで終了しません。 –