Maximum Recursion limit of 500 Reached Error.

I am using this code to plot number of circles. However, when I run it says that Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N) to change the limit. How to correct this error?
function h = circle3(x,y,r)
d = r*2;
px = x-r;
py = y-r;
h = rectangle('Position',[px py d d],'Curvature',[1,1]);
daspect([1,1,1])
for i =1:20
x=0 + (5+5)*rand(1)
y=0 + (5+5)*rand(1)
r=0.5
circle3(x,y,r)
hold on
end

回答 (2 件)

James Tursa
James Tursa 2018 年 2 月 2 日
編集済み: James Tursa 2018 年 2 月 2 日

2 投票

You need to rewrite your logic so that your circle3 function has a way to return to the caller. As it is now, the only thing that circle3 does is call circle3, which calls circle3, which calls circle3, etc.

1 件のコメント

Iqbal Farjad
Iqbal Farjad 2018 年 2 月 2 日
Can you please assist me with that or give me an example how can I rewrite?

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

Matt J
Matt J 2018 年 2 月 2 日
編集済み: Matt J 2018 年 2 月 2 日

0 投票

The code which invokes circle3() should be placed elsewhere. circle3() should contain only the following,
function h = circle3(x,y,r)
d = r*2;
px = x-r;
py = y-r;
h = rectangle('Position',[px py d d],'Curvature',[1,1]);
daspect([1,1,1])
end

1 件のコメント

Matt J
Matt J 2018 年 2 月 2 日
Incidentally, if you have the Image Processing Toolbox, just use VISCIRCLES.

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

カテゴリ

ヘルプ センター および File Exchange2-D and 3-D Plots についてさらに検索

製品

タグ

質問済み:

2018 年 2 月 2 日

編集済み:

2018 年 2 月 2 日

Community Treasure Hunt

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

Start Hunting!

Translated by