让我们想象一方面我有一个像
这样的等式y = 5x + 3
另一方面,我有两个相同大小的矢量 - 一个代表x值,另一个代表y值(只是随机值,不幸的是不是函数,否则这将非常简单 - 像信号一样) 。如何从这两个向量中找到最接近的x-y值,它们是否适合或几乎适合等式?用图形表示我正在寻找方程线与信号图相交的点。
答案 0 :(得分:1)
我回答的问题是:给定一组点D = {(x1,y1),(x2,y2),...,(xN,yN)},找到D中的点最接近y = 5x + 3的行。
解决方案:一行可以描述为 x ,其满足0 = w ' x + b其中 x 和 w 是2D矢量,b是标量。这是一个有用的表示,因为任何点 y 与此线的距离与| w'单调相关。 y + b |。
在您的情况下,我们可以将等式重写为
0 = 5x - y + 3
= [5,-1].[x;y] + 3
所以w = [5; -1];和b = 3。
这促使我们找到最近的点如下
% 10 random data points (column vector format)
D = rand(2,10)*10-5;
% line parameters
w = [5;-1];
b = 3;
% get the index of the closest point
d = abs(w'*D + b);
[~,idx] = min(d);
示例图
注意此方法也可以简单地推广到N维空间,其中0 = w' x + b描述N-D空间中的超平面。
答案 1 :(得分:0)
以表格
重写等式y = 5x + 3
5 * x - y + 3 = 0
或一般情况下:
A * x + B * y + C = 0
然后签名距离(乘以L=Sqrt(A*A+B*B)
)从此行到点(px, py)
D = A * px + B * py + C
要比较给定线的相对距离,您可以忽略L刻度,只比较所有点的D的绝对值(对于绝对值,将所有方程系数除以L)
另请注意,当点移动到相对于线的另一半平面时,D会改变其符号,因此您可以逐行更改信号图交叉点。