Matlab - función de recursión con dos entradas

 
Vista:
sin imagen de perfil

función de recursión con dos entradas

Publicado por Daniel (3 intervenciones) el 24/03/2015 13:43:12
Saludos, tengo que escribir una función recursiva numGreater(v,k) que encuentra la cantida de numero que son mayores o iguales a k. Si no hay dichos números devuelve cero. Hasta ahora este es mi código pero no me funciona:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function result=numGreater(v,k)
b=k<=v;
v(b==0)=[];
c=length(v);
v=ones(1,c);
if length(v)==0;
    result=0;
else
% result=sum(v);
 
 result=v(1)+numGreater(v(2:end),k);
end
 
end

como pueden ver tengo como comentario result=sum(v) ya que si utilizo esa función en vez de la línea de abajo a la misma la función sirve pero no es el punto porque la función tiene que ser recursiva.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

función de recursión con dos entradas

Publicado por JESUS (1818 intervenciones) el 03/04/2015 16:34:10
Saludos si necesiitas una función que encuentre los números mayores o iguales a K dado un vector V puedes hacer esto:
function result=numGreater(v,k)
a=find(v>=k);
result=length(a);
end


ahora si por x o y motivo no puedes utilizar la función Buscar de matlab (find) entonces puedes hacer esto:

function result=numGreater(v,k)
result=0;
for i=1:length(v)
if v(i)>=k
result=result+1;
end

end
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar