How can I graph a circle using a nested function in matlab?

2 vues (au cours des 30 derniers jours)
Chelsea
Chelsea le 25 Avr 2014
I am trying to plot a circle using a function function, but cannot seem to make it work. This is the code I have so far.
function cirpnts(P)
A=[-2*P(1,1) -2*P(1,2) 1; -2*P(2,1) -2*P(2,2) 1; -2*P(3,1) -
2*P(3,2) 1];
B=[-(P(1,1)^2+P(1,2)^2); -(P(2,1)^2+P(2,2)^2); -
(P(3,1)^2+P(3,2)^2)];
C = A\B;
a=C(1);
b=C(2);
r=sqrt(C(1)^2+C(2)^2-C(3));
circleplot(a,b,r)
axis equal
xlabel('x'), ylabel('y')
hold on
plot(P(:,1),P(:,2),'*','markersize',10)
hold off
function circleplot(x,y,R)
th=linspace(0,2*pi,100);
xp=x+R*sin(th);
yp=y+R*cos(th);
plot(xp,yp)
Can someone please help make this work?
  2 commentaires
Andrew Newell
Andrew Newell le 25 Avr 2014
What exactly is going wrong? The function circleplot works fine if I use it separately, but I'm not sure what cirpnts is supposed to do.
Chelsea
Chelsea le 25 Avr 2014
It is supposed to put little stars on the outside of the circle. Basically, when I try to use it as a function-function it doesn't work. I need to have them in the same script. Am I saving it wrong?

Connectez-vous pour commenter.

Réponses (2)

the cyclist
the cyclist le 25 Avr 2014
Modifié(e) : the cyclist le 25 Avr 2014
You have to do one of two things with the function circleplot:
  1. Have it within the same *.m file as cirpnts
  2. Have it in a different file but that file must be named circleplot.m
If the subfunction is not with the same *.m file, MATLAB is going to look for the filename.

Image Analyst
Image Analyst le 25 Avr 2014
I don't know what a "function-function" is. You can have both of those functions in the same m-file if you call it cirpnts.m. But when you call cirpnts(), you must pass in P. What is a typical value you are wanting to use for P?

Catégories

En savoir plus sur 2-D and 3-D Plots dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by