Python中文
首页
教程
问答
标签
搜索
登录
注册
欧氏距离的迭代计算
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我对python和numpy还不熟悉。 我可以生成原子的笛卡尔坐标。e、 g.(CuO)<em>n</em></p> <p>我想计算不同种类的原子之间的原子间距离(欧氏距离),例如Cu到O,反之亦然。不是O对O或Cu对Cu。你知道吗</p> <p>这是(CuO)<em>n</em>n=2笛卡尔坐标的例子。 (为方便起见,在本问题中添加了(Cu)和(O)符号)</p> <pre class="lang-none prettyprint-override"><code> 0.000410140 0.000000000 -1.1437349409 (Cu1) 0.021984617 0.000000005 0.432069216 (Cu2) 0.021984488 0.000000005 0.432067361 (O1) -0.043697492 0.000000005 0.432252977(O2) </code></pre> <p>随着<code>n</code>尺寸的增大,又产生了两个笛卡尔坐标。你知道吗</p> <p>所以,我的问题是如何计算迭代欧氏距离,比如Cu1到O1,Cu2到O2,Cu2到O1,Cu2到O2?你知道吗</p> <pre><code>a = np.loadtxt({file}) for {} in a: d = np.sqrt(np.sum((a[int(x)]-a[int(y)]**2)) </code></pre> <p><code>n=2 x < n y >= n+1 a[0] to a[3], and a[1] to a[4]</code></p> <p>我可以看出我在for循环中分配多个变量的弱点。你知道吗</p> <p><strong>试用版1</strong></p> <pre><code>a = np.loadtxt({data}) cation = a[:{n}] anion = a[{n}:] d = np.sqrt(np.sum((cation-anion)**2)) print(d) </code></pre> <p>该值为1.5809706852417704。按一下就错了(<strong>为什么?</strong>)</p> <p>但是,下面的for循环给出了所有值, 1.5759499815439955、1.5766050227405235、1.859480034843622e-06、0.0656823660565985</p> <pre><code>for x in cation: for y in anion: d = np.sqrt(np.sum((x-y)**2)) print (d) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>你可以把这个列表分成两个列表,一个是Cu原子,一个是O原子。然后可以循环遍历Cu列表并计算到O列表中每个元素的距离。使用2个for循环可以很容易地完成这一点。你知道吗</p> <pre class="lang-py prettyprint-override"><code>for atom1 in CUlist: for atom2 in Olist: calculatedist(atom1, atom2) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
区分轴上的像素大小
10 回答
区分过度拟合与良好预测
7 回答
区分通过POST接收的数据并在Cherrypy中获取
2 回答
区分重写和重载
10 回答
区分金贾二号的类型
2 回答
区别:IF IN和IF==python
2 回答
区别:list.append()与incrementequal?
7 回答
区别:创建在启动wx应用程序时不“阻止”控制台的脚本
8 回答
区别于python中的命令行和CGI
6 回答
区别关系
7 回答
区别是什么APIClient.enforce\ csrf\检查以及APIClient.handler.enforce\ csrf\ u检查
6 回答
区块.draw()未在python空闲模式下工作
1 回答
区块链API调用输出对象名称而不是内容
2 回答
区块链nonce值随负载变化
1 回答
区块链Python语法错误(Snakecoin)
7 回答
区块链不连接到服务器和矿工
6 回答
区块链信息钱包支票支付员
7 回答
区块链和区块链密码错误
3 回答
区块链尝试向Transaction字典添加键/值以创建区块链
3 回答
区域:IOError:[Errno 22]无效模式('w')或filenam
2 回答