作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个矩阵 A
(Mx2) 和矩阵 B
(Nx2),M>=N。
我必须计算垂直欧氏距离来测试 A 和 B 之间的相似性。引用图像,单个欧氏距离是每个 pi 和 p'i 之间的段,一旦计算了每个垂直距离,我就可以计算平均值或sum 获取单个参数。您知道执行此操作的 matlab 例程或此类脚本吗?
最佳答案
如果您知道 p1 .. p4 位于 p0 和 p5 之间,那么您可以使用三角形的面积轻松计算垂直距离:
d(p0p5, p1) = 2 * area(p0p1p5) / norm(p5-p0)
area(p0p1p5) = sqrt(s * (s-norm(p0-p1)) * (s-norm(p1-p5)) * (s-norm(p5-p0)))
s = (norm(p0-p1) + norm(p1-p5) + norm(p5-p0)) / 2
d(p0p5, p1) = sqrt(norm(p1-p0)^2 - dot(p1-p0,p5-p0)^2/norm(p5-p0)^2)
sqrt
仅通过评估平方误差来调用。范数平方的计算也比调用
norm
便宜然后平方(使用点积代替)。
关于matlab - 如何在Matlab中计算垂直距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10373472/
我是一名优秀的程序员,十分优秀!