How To Prevent an Infinite Recursion?
Show older comments
error is cleared..
3 Comments
Stephen23
on 4 Dec 2018
"It refers to this part of the code: "f = @(t,x)" etc."
There is nothing similar to that in the code you have shown us.
"How can I fix this?"
Do not call a function within itself (directly or indirectly).
Jan
on 4 Dec 2018
This line looks strange:
result = bilateralfilter_mex bilateralfilter_mex(I, hwsize, sscale, iscale);
Stephen23
on 4 Dec 2018
@kamarthi vanitha: note that bilateralfilter.m is copyright code. Do you have permission to distribute it publicly?
Answers (2)
Image Analyst
on 4 Dec 2018
What are you passing in as input arguments?
We don't have the mex file, so we can't run it ourselves.
Set a breakpoint at the mex file call. Run these lines of code, either in the m-file before the mex file call, or at the command line when you stop at the breakpoint there.
whos I
whos hwsize
whos sscale
whos iscale
What do you see in the command window?
Seems like they cause the mex file to try to create a gigantic array.
Yap emmanuel
on 26 Jan 2019
0 votes
d_mx = 0;
idx = 0;
for a = 2:n-1
d = sqrt((x_np - Pts_in(1,2:n-1)).^2 + (y_np - Pts_in(2,2:n-1)).^2);
d_mx = max(d);
if d > d_mx;
idx = a;
d_mx = d;
end
end
k = length(d);
% % recursively call of the function
% for t = 1:k
if d_mx > epsilon
teil_1 = rdpa(Pts_in(:,1:idx),epsilon);
teil_2 = rdpa(Pts_in(:,idx:n-1),epsilon);
Pts_out = [teil_1(:,1:length(teil_1)-1) teil_2(:,1:length(teil_2))];
else
Pts_out = [Pts_in(:,1) Pts_in(:,n)];
end
end
For this code i receive the answer: Out of memory. The likely cause is
an infinite recursion within the
program.
Que faire s'il vous plait ca dure depuis un temps.
Categories
Find more on MATLAB 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!