计算化学公社
标题: 求助tcl,循环出问题 [打印本页]
作者Author: chw985550192 时间: 2020-7-10 13:36
标题: 求助tcl,循环出问题
本帖最后由 chw985550192 于 2020-7-10 14:17 编辑
for {set j 96} {$j <= 117} {incr j 1} {
set outfile [open num-$j.dat w]
set O5 [[atomselect top {not water and name "O.*" and within 3 of index $j}] get index]
set O5num [llength $O5]
puts $outfile [format "%5d" $O5num]
}
close $outfile
我想统计index 96 to 117 附近的氧原子
我直接在tk console中输入 set O5 [[atomselect top {not water and name "O.*" and within 3 of index 96}] get index] ,输出的结果为120 125 136 158 169
可是做上述循环的时候输出 1 2 10,输出结果竟然和上述不一样,且输出是错误的。
请问上述的循环中那里出问题了呢,谢谢。
作者Author: enthalpy 时间: 2020-7-10 15:09
本帖最后由 enthalpy 于 2020-7-10 15:18 编辑
{set j 96} {$j <= 117} {incr j 1} {
set outfile [open num-$j.dat w]
set O5 [[atomselect top “not water and name "O.*" and within 3 of index $j"] get index]
set O5num [llength $O5]
puts $outfile [format "%5d" $O5num]
}
你要把花括号替换成双引号,里面的变量j 才能替换。
作者Author: chw985550192 时间: 2020-7-10 15:18
我给的例子是对当前帧数进行输出,并没有涉及到具体那一帧。我只是想问上述的循环那里出问题。
作者Author: enthalpy 时间: 2020-7-10 15:19
我刚才看错了,你看上面修改的回复。
作者Author: chw985550192 时间: 2020-7-14 20:13
谢谢你的回答,你说的会有一个问题,我定义的 name "O.*",已经有双引号了,如果再有一个双引号就会报错,请问这个问题要怎么解决呢。
作者Author: wyb 时间: 2020-7-15 09:34
每次读取一帧的时候需要清空之前的选择
欢迎光临 计算化学公社 (http://bbs.keinsci.com/) |
Powered by Discuz! X3.3 |