Borrar filtros
Borrar filtros

How should I use the function Circfit ?

18 visualizaciones (últimos 30 días)
farzad
farzad el 8 de En. de 2020
Comentada: Adam Danz el 13 de En. de 2020
Hi All
How do I use the function Circfit ? the size and class of inputs is not clear

Respuesta aceptada

Adam Danz
Adam Danz el 9 de En. de 2020
Editada: Adam Danz el 13 de En. de 2020
From the help section of that file,
% x,y are column vector where (x(i),y(i)) is a measured point
Their class are double.
They are column vectors of any length but must have the same length between x and y.
Demo
Here's a demo; see the inline comments to understand each step.
First, compute noisy circle coordinates for the demo.
% Create noisy circle coordinates
radius=3;
theta=linspace(0,2*pi,200);
theta(randi(numel(theta),1,190)) = []; % remove some data
x=radius*cos(theta);
y=radius*sin(theta);
% add noise
x = x + (rand(size(x))-0.5)*radius/4;
y = y + (rand(size(y))-0.5)*radius/4;
% Plot it
plot(x,y,'o')
axis equal
Do the fitting but you have to fill in the inputs. The reason I'm not telling you what the inputs should be is not to cause frustration but to get you to think about this. Again, the two inputs are column vectors of your x and y coordinates of each point you're fitting.
% Fit it
[xc,yc,R,a] = circfit(___, ___); % FILL IN THE INPUTS HERE
% [update: here's the solution: [xc,yc,R,a] = circfit(x, y);
Now you can use the outputs to compute the fitted circle and plot it.
% compute circle based on fit params
theta=linspace(0,2*pi,200);
xFit=R*cos(theta) + xc;
yFit=R*sin(theta) + yc;
% add fit
hold on
plot(xc,yc,'rx') % plot circle center
plot(xFit,yFit, 'r-')
  9 comentarios
Adam Danz
Adam Danz el 9 de En. de 2020
Editada: Adam Danz el 10 de En. de 2020
Run my example. The x and y variables are vectors and together they are the coordinates of each noisy point along the cirlce. They are the variables you are fitting.
If you are only fitting 3 points, then your x vector will have 3 values (the x value for each point) and your y vector will have 3 values (the y value for each point).
Adam Danz
Adam Danz el 13 de En. de 2020
@farzad, in case you still haven't figured it out, I've updated my answer to show what the two inputs should be to circfit().

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 2-D and 3-D 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