首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >excel中的欧氏距离矩阵

excel中的欧氏距离矩阵
EN

Stack Overflow用户
提问于 2014-09-24 18:50:51
回答 3查看 21.2K关注 0票数 1

我急需一些与Excel相关的帮助。

假设我有4个不同的部分。每个片段有7个数字属性。

代码语言:javascript
运行
复制
A(200;43;23;1.5;16;50000;14)  
B(250;41;23;2.1;19;70000;13)  
C(179;37;25;3.4;20;15000;12)  
D(402;49;19;1.9;25;99000;11)

假设每个段都有自己的行(1-4),每个属性都有自己的列(A-G)。我使用这个方程来计算每一行之间的欧几里得距离:

代码语言:javascript
运行
复制
=SQRT(SUMPRODUCT((A1:G1-B2:G2)^2))

我如何编辑这个方程式,这样如果我创建了一个像这样的矩阵:

代码语言:javascript
运行
复制
\ A B C D  
A  
B  
C  
D  

在给定线段交叉的单元格中,对角线和线段之间的距离应该是0?每次我使用'$‘来修复一行或一列时,我得到的结果都是错误的,并且我的想法已经用完了。

我希望我表达了我的问题,以便每个人都能理解。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-25 06:58:40

不确定您发布的方程式是如何工作的;SUMPRODUCT需要用逗号分隔的值范围。对于一维中两点之间的欧几里得距离,公式应如下所示(如果我误解了您的数据,请告诉我):

代码语言:javascript
运行
复制
=SQRT((SUM(A1:G1)-SUM(A2:G2))^2)

至于矩阵,我使用了INDIRECT使其工作。然而,为了使公式最简单,我必须将矩阵1到4的行和列命名。

您在矩阵第一个单元格(L2)的屏幕截图中看到的公式为:

代码语言:javascript
运行
复制
=SQRT((SUM(INDIRECT("A"&$K2&":G"&$K2))-SUM(INDIRECT("A"&L$1&":G"&L$1)))^2)

在将该公式放入L2之后,我只是将其拖到L5,然后将整个矩阵列拖放到O。

基本上,这个公式所做的是使用矩阵的行名和列名来创建对每个段的数组的间接调用。(因此,基本上要使其工作,矩阵的列和行的标题需要与段数据所在的行相匹配。)

票数 2
EN

Stack Overflow用户

发布于 2016-10-26 01:23:21

对于任何尝试这样做的人-我非常确定上面不会计算欧几里德距离,因为这需要每个元素之间的平方差之和,而不仅仅是总差的平方和

像这样的东西(我认为)是有效的:

=SQRT((SUM(INDIRECT("B"&$G3))-SUM(INDIRECT("B"&H$1)))^2+(SUM(INDIRECT("C"&$G3))-SUM(INDIRECT("C"&H$1)))^2+(SUM(INDIRECT("D"&$G3))-SUM(INDIRECT("D"&H$1)))^2)

票数 2
EN

Stack Overflow用户

发布于 2022-02-21 15:47:08

Euclidean distance matrix in Excel

代码语言:javascript
运行
复制
=SQRT((VLOOKUP($E3,Table1,2,FALSE)-VLOOKUP(F$2,Table1,2,FALSE))^2+(VLOOKUP($E3,Table1,3,FALSE)-VLOOKUP(F$2,Table1,3,FALSE))^2)

使用此选项可从坐标表中查找点名称并计算距离矩阵。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26015024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档