1.求直线方程:
1.1 polyfit()函数,有三个参数:
x:一个包含用于拟合的数据点的 x 坐标的向量。
y:一个包含用于拟合的数据点的 y 坐标的向量。
n:表示拟合多项式的阶数,即多项式的最高次幂。
因此,polyfit(x, y, n) 中的 x 和 y 是数据点的坐标,n 是拟合多项式的阶数。
1.2 polyfit()函数返回的参数:对于一个 n 次多项式拟合,polyfit() 函数返回一个长度为 n+1 的向量,该向量包含了从高阶到低阶的多项式系数。例如,对于一次多项式拟合,polyfit() 返回的向量包含两个值,分别是一次项的系数和常数项的系数。
1.3 代码编写:
[x,y]=[83,150;387,150];%点坐标(83,150),(387,150)
coefficients = polyfit(x, y, 1);
k=coefficients(1);
b=coefficients(2);
fprintf('The line equation is: y = %.2fx + %.2f\n', k, b);%打印直线方程
1.4结果可视化对比:
2.点到直线距离:
2.1 公式:
当直线方程为y=kx+b时,距离公式为
因此只需要对该公式进行代码编写转换即可。
points=load('二维点坐标的文件位置’);%文件排列为x,y
distance=abs(k*points(:,1)-points(:,2)+b)/sqrt(1+k^2);