Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 查找最近点的步骤_Matlab - Fatal编程技术网

Matlab 查找最近点的步骤

Matlab 查找最近点的步骤,matlab,Matlab,我们有一组矩阵形式的(x,y)坐标。我们想通过这些点拟合一条曲线。但它不按顺序取点(最近点),而是按矩阵中的顺序排列点我认为@Mathematicsian1975是非常正确的,在进行曲线拟合之前,不需要按顺序排列点,至少对于OLS来说是这样。如果确实需要序列,可以按变量对坐标进行排序。在这两种情况下,您都不需要最近的点。问题很不清楚,但根据您的评论,您可以简单地创建一个新的有序点矩阵,方法是确定一个起点,并使用欧几里德范数识别最近的邻点,然后将其添加到新矩阵中。对每个点继续此操作(当然,确保在每

我们有一组矩阵形式的(x,y)坐标。我们想通过这些点拟合一条曲线。但它不按顺序取点(最近点),而是按矩阵中的顺序排列点

我认为@Mathematicsian1975是非常正确的,在进行曲线拟合之前,不需要按顺序排列点,至少对于OLS来说是这样。如果确实需要序列,可以按变量对坐标进行排序。在这两种情况下,您都不需要最近的点。

问题很不清楚,但根据您的评论,您可以简单地创建一个新的有序点矩阵,方法是确定一个起点,并使用欧几里德范数识别最近的邻点,然后将其添加到新矩阵中。对每个点继续此操作(当然,确保在每个步骤中从最近邻计算中排除所有以前的点),直到只剩下一个点为止

完成此操作后,您可以按所需顺序设置点,并可以相应地拟合参数化曲线

这是很有可能的,有一个神奇的命令在matlab中,将为您做到这一点,但如果有,我不知道它。如果有,我相信你会在适当的时候得到答复


如果没有,您仍然可以通过循环和
norm
函数获得(我认为)您想要的。它可能不是最优的,但它会给你你想要的。

你是什么意思?您是在尝试以传统近似意义拟合曲线(即近似坐标的函数近似f(x))还是希望拟合参数曲线?是的,我们希望拟合参数曲线为什么不简单地按实际需要的顺序对点进行排序。在您的情况下,听起来您希望根据点的接近程度对点进行排序。您仍然需要定义一个起点,然后迭代计算最近的点。我认为您应该编辑您的问题,以明确您想要的内容,甚至包括数据的图像和您想要的结果。sort命令没有帮助,因为假设我们在矩阵中有相同序列的点A(1,1)B(2,5)C(3,2)D(5,4)。现在我们想通过点A C D B拟合曲线,但当我们试图通过上述点拟合曲线时,它会通过序列A B C D(即,矩阵中给出的序列),这就是为什么我们需要最近的点(因为C比B更接近A)@user2754278我也很难理解你们想做什么。请提供更多数据,并更清楚地描述问题。否则,我们无法为您提供更多帮助。