【问题标题】:Least Squares line fit in Matlab - Polyfit isn't (doesn't seem to be) answerMatlab中的最小二乘线拟合-Polyfit不是(似乎不是)答案
【发布时间】:2014-02-13 13:07:51
【问题描述】:

我正在寻求帮助,在 Matlab 中对一组点进行(简单?)最小二乘线拟合。

我有一个包含一组点的图像,我试图将它们拟合成一条线,从而最小化每个点到线的距离(最小二乘拟合)。似乎与openCV/fitline 一起工作得很好,但我们正在两个平台上进行研究——另一个是Matlab,而Matlab/polyfitopencv/fitline 做的事情不同。

根据Fitting a line - MatLab disagrees with OpenCV,似乎Polyfit 最小化了到直线的 Y 距离,而不是最小二乘(垂直)距离。

【问题讨论】:

  • 最小二乘回归根据定义最小化 y 距离。如果您想最小化垂直距离,请尝试 PCA。但是你到底想用这条线做什么?您可能会发现 Matlab 解决方案实际上就是您所追求的。
  • 这可能会有所帮助:cerebralmastication.com/2010/09/…
  • @Dan,准确地说是非线性 PCA。 :)
  • @divanov 我不太确定——你能链接到参考吗?我认为只是普通的 PCA 将完全按照 OP 描述的 OpenCV 来做......
  • @Dan,polyfit 用多项式曲线拟合数据,因此必须使用 PCA 获得相同的多项式 PCA。

标签: matlab linear-regression pca


【解决方案1】:

您可以编写自己的距离函数并使用 lsqnonneg。

【讨论】:

    猜你喜欢
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 2015-02-14
    相关资源
    最近更新 更多