Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
Maximum recursion limit of 500 reached.

Subject: Maximum recursion limit of 500 reached.

From: EVANICE GOMES

Date: 18 Apr, 2014 00:23:11

Message: 1 of 2

Por favor me ajudem. Eu gostaria de saber o que fazer quando aparece esta mensagem na área de trabalho do Matlab: ??? Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N)
to change the limit. Be aware that exceeding your available stack space can
crash MATLAB and/or your computer. Como solucionar este problema? Estou trabalhando com a função do algoritmo fuzzy c-means: function [center, U, obj_fcn] = fcm(data, cluster_n, options). Eu acho que a minha matrix de dados é muito grande, ela esta em forma de vetor sendo 238 linhas e 5 colunas. Por favor me ajudem. Eu preciso muito resolver esse problema.

Subject: Maximum recursion limit of 500 reached.

From: Steven Lord

Date: 18 Apr, 2014 14:06:18

Message: 2 of 2


"EVANICE GOMES" <gomes-evanice@ig.com.br> wrote in message
news:lipr9f$31k$1@newscl01ah.mathworks.com...
> Por favor me ajudem. Eu gostaria de saber o que fazer quando aparece esta
> mensagem na rea de trabalho do Matlab: ??? Maximum recursion limit of 500
> reached. Use set(0,'RecursionLimit',N)
> to change the limit. Be aware that exceeding your available stack space
> can
> crash MATLAB and/or your computer. Como solucionar este problema? Estou
> trabalhando com a funo do algoritmo fuzzy c-means: function [center, U,
> obj_fcn] = fcm(data, cluster_n, options). Eu acho que a minha matrix de
> dados muito grande, ela esta em forma de vetor sendo 238 linhas e 5
> colunas. Por favor me ajudem. Eu preciso muito resolver esse problema.

Your function calls itself and doesn't have a way to stop. For example, this
function calls itself over and over; if we didn't error it would consume all
the memory on the machine with the calling stack and probably crash the
machine.

    function y = recursiveFunction(x)
    y = x+recursiveFunction(x);

To stop this, include a way to break the looping:

    function y = recursiveFunction(x)
    if x <= 0
        y = 1;
    end
    y = x+recursiveFunction(x-1);

Now as soon as x is less than or equal to 0, recursiveFunction will not call
itself.

[Translated to Portuguese via http://www.google.com/language_tools:

Sua funo chama a si mesma e no tem uma maneira de parar. Por exemplo,
esta funo se chama mais e mais; se no erro que iria consumir toda a
memria da mquina com a pilha de chamadas e, provavelmente, falhar a
mquina.

    function y = recursiveFunction(x)
    y = x+recursiveFunction(x);

Para acabar com isso, incluir uma maneira de quebrar o looping:

    function y = recursiveFunction(x)
    if x <= 0
        y = 1;
    end
    y = x+recursiveFunction(x-1);

Ora, assim que x menor ou igual a 0, recursiveFunction no vai chamar-se.
]

--
Steve Lord
slord@mathworks.com
To contact Technical Support use the Contact Us link on
http://www.mathworks.com

Tags for this Thread

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us