【发布时间】:2014-06-19 21:38:56
【问题描述】:
我正在寻找适合一组约 6-10k 3D 点的平面。我希望尽可能快地做到这一点,而准确性并不是最关心的问题(坦率地说,飞机在任何基本轴上都可以偏离 +-10 度)。
我目前的方法是使用最佳拟合,但速度非常慢(我希望每次运行算法时以大约 10-50k 次的速度提取平面,并且以这个速度完成周,而不是几个小时),因为它适用于 6000 点的所有可能组合,因此大约 35,000,000,000 次迭代,坦率地说,它的准确度比我需要的要高得多。
有人知道任何较弱的平面拟合技术可以大大加快我的算法吗?
编辑:
通过在每个可能的 3D 角度创建平面(每次以 5 度步进)并针对这些点测试现有点以找到最佳平面,而不是拟合飞机到我所拥有的点。
我敢肯定,通过分而治之也能获得一些东西,尽管我担心我会直接跳过最好的飞机。
【问题讨论】:
-
您可以访问Curve Fitting Toolbox吗?
-
不幸的是,我没有,我被 vanilla MATLAB 困住了,虽然我有很多编程经验,所以我应该能够处理一个相当复杂的算法。
-
如果准确性不是您主要关心的问题,请尝试降低数据的输入复杂性。在最初的 6-10k 点上运行 kmeans 或其他东西,然后将平面拟合到样本。
-
@Ansari:好主意。为了进一步提高性能,获取随机点子集可能就足够了。
标签: performance matlab plane