179 views (last 30 days)
Show older comments
Commented: Steven Lord on 24 Jun 2022
Hello, I have a little starter question about matlab. How do I plot a circle given by x^2+y^2=4?
Sky Sartorius on 25 Feb 2020
There are a few ways to go about this. One that is somewhat agnostic to what the equation is trying to represent (in this case, a circle) involves calculating the equation for the whole space, then plotting only an isoline of the target value.
[X,Y] = meshgrid(-3:.1:3,-3:.1:3); % Generate domain.
Z = X.^2 + Y.^2; % Find function value everywhere in the domain.
contour(X,Y,Z,[4 4]) % Plot the isoline where the function value is 4.
If you know more about your function and can turn it around into a function of only one variable (e.g., sine and cosine of t), that is preferable in most cases.
More Answers (3)
James Tursa on 25 Feb 2020
E.g., since you know it is a circle with radius 2 centered at the origin;
ang = 0:0.01:2*pi;
x = 2*cos(ang);
y = 2*sin(ang);
hamza on 24 Jun 2022
Edited: Image Analyst on 24 Jun 2022
Plot the contour plots of the circles x^2+y^2 of radius 1,2, 1.41,1.73.
Image Analyst on 24 Jun 2022
radii = [1, 2, 1.41, 1.73];
viscircles([zeros(4,1), zeros(4,1)], radii);
Another way to do this is to use the fcontour function.
f = @(x, y) x.^2+y.^2;
fcontour(f, 'LevelList', 4)
If you want to see multiple contours, specify a non-scalar LevelList.
fcontour(f, 'LevelList', 1:4:25)
Note that viscircles is part of Image Processing Toolbox which means that not all users would have access to it.
Find more on Surface and Mesh Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!