File Exchange

image thumbnail

Ellipsoid Fitting

version (1.17 KB) by Q LI
Two matlab files to demonstrate how to fit an ellipsoid directly to a set of 3D points.


Updated 20 Mar 2009

No License

The code implemented a special case of the ellipsoid fitting technique proposed in the paper Least Squares Ellipsoid Specific Fitting, corresponding to case k= 4. Just put the two files in the same directory and run "testFit4". You can change the noise level to observe the fitting accuracy and efficiency of the algorithm. It works well when the underlying shape characterized by the data points is quite spherical. However, if this is not the case, some modification is required. For the technical detail of the fitting method, please refer to the above mentioned paper, which can be found from the following webpage:

Cite As

Q LI (2020). Ellipsoid Fitting (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (6)

How can I get the semiaxis from matlab?

Q Li

The above link to the paper is broken. The paper for the algorithm can be found from ResearchGate at
or from IEEE Xplore at
Compared with the algorithm presented by Yury at, it is all about fitting accuracy. To compare the two algorithms, you have to use the same set of datasets.

If you find the fitted ellipsoid cannot be displayed properly, please change the line of code for creating the mesh grid in testFit4.m from
[x, y, z]=meshgrid(-a:stepA:a, -b:stepB:b, -c:stepC:c);
[x, y, z]=meshgrid(minX-stepA:stepA:maxX+stepA, minY-stepB:stepB:maxY+stepB, minZ-stepC:stepC:maxZ+stepC);

The code cannot be used in a general manner.


Why is the size of the points in the testfit (11,6)?

Should it not be 11,3 for xyz?

what is the meaning here?


chuk Zhu

where I check your test, I find the values of the major, medium and short radius from the equation u^3 - I*u^2 + J * u - K = 0 have some problems...

Here I = a + b + c
J = ab+bc+ac-f^2 - g^2 - h^2
K = |a h g; h b f; g f c|;

from "least squares ellipsoid specific fitting" GMP-04

MATLAB Release Compatibility
Created with R13
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: RADIOMICS, hyperellipsoidfit