我急需一些与Excel相关的帮助。
假设我有4个不同的部分。每个片段有7个数字属性。
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)。我使用这个方程来计算每一行之间的欧几里得距离:
=SQRT(SUMPRODUCT((A1:G1-B2:G2)^2))
我如何编辑这个方程式,这样如果我创建了一个像这样的矩阵:
\ A B C D
A
B
C
D
在给定线段交叉的单元格中,对角线和线段之间的距离应该是0?每次我使用'$‘来修复一行或一列时,我得到的结果都是错误的,并且我的想法已经用完了。
我希望我表达了我的问题,以便每个人都能理解。
发布于 2014-09-25 06:58:40
不确定您发布的方程式是如何工作的;SUMPRODUCT需要用逗号分隔的值范围。对于一维中两点之间的欧几里得距离,公式应如下所示(如果我误解了您的数据,请告诉我):
=SQRT((SUM(A1:G1)-SUM(A2:G2))^2)
至于矩阵,我使用了INDIRECT使其工作。然而,为了使公式最简单,我必须将矩阵1到4的行和列命名。
您在矩阵第一个单元格(L2)的屏幕截图中看到的公式为:
=SQRT((SUM(INDIRECT("A"&$K2&":G"&$K2))-SUM(INDIRECT("A"&L$1&":G"&L$1)))^2)
在将该公式放入L2之后,我只是将其拖到L5,然后将整个矩阵列拖放到O。
基本上,这个公式所做的是使用矩阵的行名和列名来创建对每个段的数组的间接调用。(因此,基本上要使其工作,矩阵的列和行的标题需要与段数据所在的行相匹配。)
发布于 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)
发布于 2022-02-21 15:47:08
Euclidean distance matrix in Excel
=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)
使用此选项可从坐标表中查找点名称并计算距离矩阵。
https://stackoverflow.com/questions/26015024
复制相似问题