24小时热门版块排行榜    

查看: 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操作只有点积和叉积
回复此楼

» 收录本帖的淘帖专辑推荐

编程 VMD 可视化软件

» 猜你喜欢

技术博客:http://hi.baidu.com/coolrainbow/blog
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bay__gulf

金虫 (著名写手)

刘苏州

★ ★
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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

coolrainbow

木虫 (著名写手)

未来国家冻凉

引用回帖:
Originally posted by bay__gulf at 2010-04-21 09:03:54:
自己写个函数吧
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  ...

谢谢!我也是这么写的,类似:

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++级别的
技术博客:http://hi.baidu.com/coolrainbow/blog
3楼2010-04-21 10:26:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bay__gulf

金虫 (著名写手)

刘苏州


ghcacj(金币+1):谢谢 2010-04-21 11:49
tcl 这种脚本语言没有速度快的, 追求速度建议转化格式后用c 或fortran 编写
50分钟也可以等待
4楼2010-04-21 11:02:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 coolrainbow 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见