No deberías aprender matlab. Aprende scipy en su lugar. Es igual de capaz para lo que Matlab fue diseñado, es decir, numérico, pero se conecta con un lenguaje mucho más potente (python), que admite todo tipo de otras bibliotecas, junto con muy buenas características de lenguaje que simplemente no existen en matlab. Además, scipy es extremadamente libre, modificable y extensible en formas que matlab no lo es. La única razón para usar matlab es mantener una gran base de código preexistente. Todos los proyectos nuevos se benefician mucho, mucho más que de scipy. Déjame elaborar.
Scipy es igual de capaz. Todavía no me he encontrado con un problema que pudiera resolver en matlab pero no en scipy, y he usado mucho los dos. La compatibilidad con gráficos, estadísticas, EDO, interpolación y álgebra lineal densa es esencialmente idéntica. Los problemas escasos pueden ser una historia diferente, pero scipy al menos tiene un apoyo escaso. Algunos negocios de simulink probablemente no sean tan buenos. Apuesto a que podrías hacerlo, pero no tendría una GUI. Personalmente no he tenido que usar matrices dispersas o simulink, por lo que no podría decirlo. Pero personalmente he probado todo lo que la mayoría de los esfuerzos de computación científica necesitarán. Es algo realmente bueno, muy a la par con matlab para todas las necesidades informáticas científicas menos las más exóticas.
Matlab es extraño, de una manera que traiciona su origen como un lenguaje que no fue diseñado por expertos en informática, sino por científicos e ingenieros de la variedad no informática y no informática. Piense en PHP, pero al menos diseñado por alguien inteligente, si ignora lo que lo convierte en un lenguaje útil que fomenta las buenas prácticas de programación. Constantemente, y a veces viola peligrosamente el principio de diseño de menor sorpresa. Ejemplos: Matlab no permite la declaración de funciones separadas pero relacionadas en el mismo archivo. Extraño. Sorprendente. Matlab hace cosas raras al estado global. Las secuencias de comandos que no se declaran como funciones dejan cada nueva variable en el alcance después de que hayan terminado. Extraño. Peligroso. ¡Matlab lanza literales enteros a FLOTANTE! Extraño, sorprendente y peligroso. Índices de Matlab de uno . Dios, matlab, te odio mucho. El soporte de programación de nivel superior de Matlab (excepciones, objetos, espacios de nombres, programación funcional, control de GC, control de mutaciones) es de mala calidad en el mejor de los casos.
- Si no puedo resolver algunos problemas de Cracking the Coding Interview por mí mismo, incluso después de analizar la solución, ¿eso significa que no soy lo suficientemente bueno para trabajar en una empresa de software de primer nivel?
- ¿Qué tan bueno es un título en informática de la Universidad Estatal de Iowa?
- Al contratar a un ingeniero de software, ¿qué es más importante y por qué: su cartera o su pedigrí (universidad y empresas anteriores)?
- ¿Cuál es el mejor campo de ingeniería para el futuro?
- ¿Puedo contratar a un desarrollador y enseñarle Objective-C / Swift e iOS? ¿Cuánto tiempo llevaría la aceleración?
Python es muy bueno. Fue diseñado de manera muy deliberada teniendo en cuenta la legibilidad, la buena organización, la documentación y otras cuestiones de mantenimiento. Con notables excepciones a la protección de datos, en gran parte por convención (peligroso, pero no sorprendente, jajaja), prácticamente sin control de mutación y una cierta falta de verificación de errores en el inicio, el soporte de programación de alto nivel de Python es excelente. En particular, la organización del código en módulos, la herencia simple de objetos y el sistema de argumentos opcionales de Python para funciones fomentan la creación de API muy buenas, y hay muchos de ellos, scipy es uno de ellos. La abundancia de buenas API para casi todo ha hecho de Python la cinta adhesiva / súper adhesiva del mundo del software, lo que hace que la interfaz entre su código científico y, digamos, las API web no solo sea posible, sino que sea lo más fácil posible. Agradable si está haciendo minería de datos en línea y desea analizar los resultados con facilidad similar a matlab. La biblioteca estándar de Python es la API más simple y mejor organizada que he usado. Python es un lenguaje muy fácil de aprender, con pocas sorpresas en el camino. El soporte unicode de Python 3 es muy cómodo. La clara dicotomía de la cadena frente a la matriz de bytes es muy agradable.
Terminaré resumiendo que los informáticos diseñaron Python y los otros científicos diseñaron Scipy, y así es como debe ser.