aluno20000
Membro
Alguém me pode dar uma ajuda por favor? Estou a tentar fazer um programa em octave e esta me a dar o seguinte erro:
max recursion depth exceeded
error caled from
size at line 3 column 3
gastos at line 2 column 5
Primeiro implementei uma função gasto para determinar o gasto de uma viatura, com um consumo c (em litros/100km) ao percorrer uma dada distância, dab (dada em km), entre duas cidades com altitudes ha e hb (medidas em metros).
function gc = gasto(ha,hb,dab,c)
if dab == 0
gc = 0;
else
gc = (c/100) * dab * (1+ 100*(hb-ha)/(1000*dab))^2;
end;
end
Depois implementei uma função, gastos, para transformar uma matriz de distâncias, indicada pelo parâmetro Grafo, numa matriz de gastos, C, usando a função gasto, aplicável a distâncias não nulas.
function G = gastos(Grafo,Altitudes,consumo)
n = size(Grafo,1);
G = zeros(n,n);
for i = 1 : n
for j = 1 : n
if Grafo(i,j) == 0;
G(i,j) = Inf;
else
G(i,j) = gasto(Altitudes(i),Altitudes(j),Grafo(i,j),consumo);
end;
end;
end
eu utilizei Grafo = [0,102,89,0,136; 102,0,157,172,39; 89,157,0,58,0; 0,172,58,0,95; 136,39,0,95,0] Altitudes = [100, 160, 85, 90, 130] consumo = 6.5 e ao chamar a funcao gastos(Grafo,Altitudes,consumo) deu-me esse erro , mas nao percebi porque?
alguém consegue dizer-me porque é que está a aparecer este erro? Estou a utlizar o octave
max recursion depth exceeded
error caled from
size at line 3 column 3
gastos at line 2 column 5
Primeiro implementei uma função gasto para determinar o gasto de uma viatura, com um consumo c (em litros/100km) ao percorrer uma dada distância, dab (dada em km), entre duas cidades com altitudes ha e hb (medidas em metros).
function gc = gasto(ha,hb,dab,c)
if dab == 0
gc = 0;
else
gc = (c/100) * dab * (1+ 100*(hb-ha)/(1000*dab))^2;
end;
end
Depois implementei uma função, gastos, para transformar uma matriz de distâncias, indicada pelo parâmetro Grafo, numa matriz de gastos, C, usando a função gasto, aplicável a distâncias não nulas.
function G = gastos(Grafo,Altitudes,consumo)
n = size(Grafo,1);
G = zeros(n,n);
for i = 1 : n
for j = 1 : n
if Grafo(i,j) == 0;
G(i,j) = Inf;
else
G(i,j) = gasto(Altitudes(i),Altitudes(j),Grafo(i,j),consumo);
end;
end;
end
eu utilizei Grafo = [0,102,89,0,136; 102,0,157,172,39; 89,157,0,58,0; 0,172,58,0,95; 136,39,0,95,0] Altitudes = [100, 160, 85, 90, 130] consumo = 6.5 e ao chamar a funcao gastos(Grafo,Altitudes,consumo) deu-me esse erro , mas nao percebi porque?
alguém consegue dizer-me porque é que está a aparecer este erro? Estou a utlizar o octave
Última edição: