View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
Plot an ellipse in "center form"

4.4 | 13 ratings Rate this file 28 Downloads (last 30 days) File Size: 2.09 KB File ID: #13844 Version: 1.0
image thumbnail

Plot an ellipse in "center form"


Nima Moshtagh (view profile)


02 Feb 2007 (Updated )

Draws 2D and 3D ellipses that are given in "center form".

| Watch this File

File Information


This function draws an N-dimensional ellipse (N = 2,3) that is given in "center form":

(x - C)' A (x - C) <= 1

where C is the center of the ellipse, and A is an NxN positive definite symmetric matrix.

A and C could be the outputs of the function: "MinVolEllipse.m", which computes the minimum volume enclosing ellipsoid containing a set of points in an N-dimensional space. For example, you can use this function as follows:

  P = rand(3,100);
  t = 0.001;
  [A , C] = MinVolEllipse(P, t)
  hold on


Minimum Volume Enclosing Ellipsoid inspired this file.

This file inspired Ellipsoid Method and Fakenmc/Amvidc.

MATLAB release MATLAB 6.5 (R13)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (18)
21 Jan 2016 Uri Cohen

02 Dec 2015 jack

jack (view profile)

If i multiply A with (1-epsilon) then the ellipse gets bigger which is not logical since i lower the eigen values by multiplying A with a number lower than one and if i multiply A with a number bigger than 1 then the ellipse gets smaller.

Is there a bug?
If not, can you please explain?

28 Aug 2013 lan

lan (view profile)


08 Mar 2012 Sepehr Farhand

12 Oct 2011 Kwame

Kwame (view profile)

Can you please show me an example of the function inputs? I keep getting errors about my inputs.

Comment only
06 Sep 2011 Ahmed Fasih

To plot just circles with "r" radius, pass in eye(2)*(r)^-2 as the covariance matrix. A plot function like this shouldn't change the plot more than it needs to: I disabled the "grid" and "axis" commands. It should also return handles to the plot objects it creates: I had to add this as well. But this code gets me 95% there, thanks.

20 Aug 2011 LIAO xj

14 Dec 2010 Jimmy

Jimmy (view profile)

Error appears when I use your function.
I found that there is another ellipsoid.m in my external toolbox.
Maybe this ellipsoid.m is called instead of that in Matlab.
So, how to solve this problem?

17 Aug 2010 Nima Moshtagh

Nima Moshtagh (view profile)

Here is a link to the (unpublished) paper describing the algorithm and math behind the code:

Comment only
17 Jul 2010 Bismark Nkansah

Good work, Nima. I've been trying to follow the link to study the mathematical basis for the algoritm, but without success. Could you please help me?
Is it possible that in determining the minimum volume we can assign weights to the points such that the farther away a point is from the main 'cloud' the smaller its weight?
Thanks a lot.

Comment only
18 Jun 2009 Nima Moshtagh

Nima Moshtagh (view profile)

Here is a paper describing the "minimum volume enclosing ellipse" algorithm and the math behind the code:

Comment only
15 Feb 2009 Tony Mei

Well, good programs! However, Nima, could you please show me some reference link to the mathematical basis of your algorithm ? Thanks a lot.

04 Sep 2008 Santanu Ghorai

Earlier I was doing only maths! But this has given me the joy of visualization.

27 May 2008 Gergely Takacs

Exactly what I was searching for! Thanks!:)

08 Apr 2008 david torres

works like a charm

20 Oct 2007 Blake Richards

I found it quite easy to use and read.

22 Mar 2007 nima moshtagh

Reply to John Huddleston's comment:

Function ellipsoid.m is an standard MATLAB command. It is included in version R13.

Comment only
18 Mar 2007 John Huddleston

The ellipsoid.m function is missing

[X,Y,Z] = ellipsoid(0,0,0,a,b,c,N);

05 Feb 2007

Updated the input arguments of the function. Also, added some comments to the code.

21 Aug 2007

modifying the file name.

Contact us