Borrar filtros
Borrar filtros

Two functions in the same file causing error: "Maximum recursion limit of 500 reached"

1 visualización (últimos 30 días)
I have the following function file.
function y=myfun(x)
y=2*x;
if any(y<0)
positive(x);
y=myfun(x);
end
end
function x=positive(x)
y=myfun(x);
idx=find(y<0);
x(idx,1)=-x(idx,1);
% y=myfun(x);
end
I want to give a matrix for example x=[-2;2]; and calculate y=2*x; If the any of y is negative i would like to change the x such that y is always positive.
The problem is mostly due to control flow but I cannot solve it. Can you help me?

Respuestas (1)

Iain
Iain el 22 de Mayo de 2013
The simplest answer is to set: y = 2 * abs(x);
If you do that, you don't need to recursively call the function.

Categorías

Más información sobre Geometric Transformation and Image Registration en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by