Como en todo lo técnico, generalmente dirijo a las personas a StackOverflow para que hagan la misma pregunta (Preguntas más recientes de ‘matlab’), y allí se aborda este tema aquí:
– Eficiencia: recursividad vs bucle
Por lo general (como indica la respuesta principal), los bucles son más eficientes (memoria, velocidad), mientras que la recursión mantiene sus algoritmos más simples en cuanto a código. Más allá de eso, con la recursividad, tendrás todo tipo de problemas de localización de datos (volar tus cachés de CPU y la puesta en escena de datos de tu GPU) que hacen que esto sea aún más cierto.
- ¿Para qué sirven los bordes traseros en el algoritmo Ford-Fulkerson?
- ¿Cuál es una manera simple de implementar la paginación en una matriz en Javascript?
- ¿Qué son los árboles de búsqueda binarios?
- ¿Cuáles son las ventajas de usar la notación (0,1) en el sistema binario?
- ¿Cómo podemos encontrar eficientemente la segunda caminata más corta entre dos vértices de un gráfico?
En general (no solo Matlab) esta respuesta también es cierta:
– Recursion or Loops (Iteration), cuando se trata de rendimiento, ¿cuál puede ejecutarse más rápido que el otro y qué enfoque se adapta mejor o más conveniente para el hardware?
Y la recursión tomará (como habrás notado) más memoria (es por eso que obtienes una gran cantidad de memoria caché).
Ahora esa respuesta es: “en general”. He oído hablar de casos, en Matlab, donde la recursividad es más rápida, y para eso todo lo que puedo hacer es encogerme de hombros y decir “¡eh!”.
Es posible que desee considerar echar un vistazo a SciPy (aunque reconoce que la recursión de la cola en Python generalmente se considera doblemente buena por varios miembros de esa comunidad). Anaconda es una buena distribución, pero el soporte de GPU requiere una licencia comercial:
-Anaconda