Locating center of datapoints

5 visualizaciones (últimos 30 días)
Lily
Lily el 27 de Oct. de 2014
Respondida: Torsten el 6 de Nov. de 2014
I want to find the center of data (X and Y coordinates) and if all data points are plotted the outer line represents a circle. Here is my problem, the data contains outlaws (one or more points that do not fall within the circle) also the circles outlines are of different size veering from 3cm to 6cm in diameter. What is the best way to solve this problem with general algorithm?
I know that the radius of circle is: r = sqrt((X - Xcenter).^2 + (Y - Ycenter).^2) and that I need to find the optimal r which is between 3cm/2 and 6cm/2 but also I need to located the exact center of the datapoints.
Note that the data points are not evenly distributed within the circle.
All hints / solutions are greatly precipitated.

Respuestas (2)

Torsten
Torsten el 27 de Oct. de 2014
Use lsqnonlin for the problem
min: sum_{i=1}^{N} ((x_i-x_c)^2+(y_i-y_c)^2-R^2)^2
where (x_i,y_i) are your data points.
The unknowns are x_c, y_c and R where (x_c,y_c) is the center of the circle and R is its radius.
Best wishes
Torsten.
  1 comentario
Lily
Lily el 6 de Nov. de 2014
Thanks Torsten. But how do you find the unknowns x_c and y_c? I'm assuming that you have to compute them without using Isqnonlin, right?

Iniciar sesión para comentar.


Torsten
Torsten el 6 de Nov. de 2014
The problem you described is different from what I thought at the first glance and looks quite tough to me.
You may want to perform a Google search for
"enclose the maximum number of points by a circle with given radius".
The link
seems to provide an algorithm written in C to solve this problem.
You can look at the solution for different radii and choose the one that fits your needs best.
Best wishes
Torsten.

Categorías

Más información sobre Scatter Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by