我有一个3D点数据集,它们排列成类似(半)椭圆形的簇。当我尝试标准的椭圆体拟合时,例如,在MATLAB函数http://www.mathworks.com/matlabcentral/fileexchange/24693-ellipsoid-fit中实现,无论是将拟合应用于椭球体积内的所有点还是仅应用于其凸包上的点,我都会得到虚半径。
我想知道群集形状是否比完全椭圆体更像半椭圆体这一事实会导致这些不稳定性吗?有没有更强大的方法可以解决我的问题?
更新:
这是一个这样的3D点集群的示例。蓝色圆圈表示位于簇的凸包上的点。
凸壳情况的最小工作示例如下:
k = convhull(x, y, z);
ind = unique(k(:));
[center,radii,evecs,~] = ellipsoid_fit([x(ind),y(ind),z(ind)], 1);