| 查看: 947 | 回复: 3 | ||
| 当前主题已经存档。 | ||
| 【有奖交流】积极回复本帖子,参与交流,就有机会分得作者 coolrainbow 的 1 个金币 | ||
coolrainbow木虫 (著名写手)
未来国家冻凉
|
[交流]
【求助】请问个vmd中tcl的问题 已有2人参与
|
|
|
有没有这样的操作,可以高效完成 {a1 b1 c1 d1} ** {a2 b2 c2 d2} = {a1*a2 b1*b2 c1*c2 d1*d2} vec操作只有点积和叉积 |

bay__gulf
金虫 (著名写手)
刘苏州
- 模拟EPI: 8
- 应助: 9 (幼儿园)
- 贵宾: 4.85
- 金币: 2332.8
- 红花: 1
- 帖子: 1344
- 在线: 271小时
- 虫号: 592012
- 注册: 2008-09-03
- 专业: 理论和计算化学
- 管辖: 分子模拟
★ ★
ghcacj(金币+2):谢谢 2010-04-21 10:06
coolrainbow(金币+1):谢谢 2010-04-21 10:27
ghcacj(金币+2):谢谢 2010-04-21 10:06
coolrainbow(金币+1):谢谢 2010-04-21 10:27
|
自己写个函数吧 proc vecstarstar {v1 v2} { set a1 [lindex $v1 0]; set b1 [lindex $v1 1]; set c1 [lindex $v1 2]; set d1 [lindex $v1 3] set a2 [lindex $v2 0]; set b2 [lindex $v2 1]; set c2 [lindex $v2 2]; set d2 [lindex $v2 3] return "[expr "$a1*$a2"] [expr "$b1*$b2"] [expr "$c1*$c2"] [expr "$d1*$d2"]" } 调用方法 set v1 {1 2 3 4} set v2 {2 3 4 5} set v3 [vecstarstar $v1 $v2] puts $v3 输出结果2 6 12 20 |
2楼2010-04-21 09:03:54
coolrainbow
木虫 (著名写手)
未来国家冻凉
- 应助: 1 (幼儿园)
- 贵宾: 0.1
- 金币: 3979.5
- 散金: 10
- 红花: 50
- 帖子: 1137
- 在线: 272.3小时
- 虫号: 239560
- 注册: 2006-04-07
- 性别: GG
- 专业: 理论和计算化学
|
谢谢!我也是这么写的,类似: set extrostructx {} set extrostructy {} set extrostructz {} foreach px [$trjstruct get x] py [$trjstruct get x] pz [$trjstruct get z]{ lappend extrostructx [expr $px * $px] lappend extrostructy [expr $py * $py] lappend extrostructz [expr $pz * $pz] } 我只是想问问有没有现成的,可是感觉代码很冗长,我的程序是构造结构插值的,list维数都在几千以上(而且还得按frame循环),速度慢(我的程序得运行50多分钟),像vecadd都是用C++写的,不知道有没有C++级别的 |

3楼2010-04-21 10:26:57
bay__gulf
金虫 (著名写手)
刘苏州
- 模拟EPI: 8
- 应助: 9 (幼儿园)
- 贵宾: 4.85
- 金币: 2332.8
- 红花: 1
- 帖子: 1344
- 在线: 271小时
- 虫号: 592012
- 注册: 2008-09-03
- 专业: 理论和计算化学
- 管辖: 分子模拟
4楼2010-04-21 11:02:27












回复此楼