plotting concentric circles using contour

I'm trying to plot a few concentric circles with the following codes, but what I get is an ellipse, i don't know why:
[x,y] = meshgrid(-3:0.1:3,-3:0.1:3);
z = x.^2+y.^2;
contour(x,y,z)

 採用された回答

Star Strider
Star Strider 2020 年 10 月 26 日

0 投票

Use the axis function, specifically either:
axis('equal') % Function Expression
or:
axis equal % Command Expression
.

5 件のコメント

Randy Chen
Randy Chen 2020 年 10 月 26 日
thanks!
Randy Chen
Randy Chen 2020 年 10 月 26 日
by the way how can I add some radial lines perpendicular to the circles?
Star Strider
Star Strider 2020 年 10 月 26 日
That will be diffiicult in contour, although relatively straightforward with plot:
[x,y] = meshgrid(-3:0.1:3,-3:0.1:3);
z = x.^2+y.^2;
[cm,ch] = contour(x,y,z);
hold on
axis('equal')
Lvls = ch.LevelList;
LvlIdx = find(ismember(cm(1,:),Lvls));
LvlNrs = cm(2,LvlIdx);
centre = [mean(cm(1,2:LvlNrs(1))); mean(cm(2,2:LvlNrs(1)))];
angls = linspace(0, 2*pi, 33);
XL = get(gca,'XLim');
YL = get(gca,'Ylim');
plot([centre(1);max(XL(:))]*cos(angls), [centre(2);max(YL(:))]*sin(angls), '-g')
Experiment to get the result you want.
Randy Chen
Randy Chen 2020 年 10 月 27 日
thanks a lot!
Star Strider
Star Strider 2020 年 10 月 27 日
As always, my pleasure!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeContour Plots についてさらに検索

タグ

質問済み:

2020 年 10 月 26 日

コメント済み:

2020 年 10 月 27 日

Community Treasure Hunt

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

Start Hunting!

Translated by