¿Cuál es más eficiente de usar para la investigación: Matlab o Python? ¿Hay mejores opciones?

Digamos que quieres hacer esto,

Ahora, seleccionemos su estación de trabajo.

  • Considere el siguiente taller. Observe cómo hay todo tipo de herramientas, objetos, mesas, aparatos electrónicos. ¡Todo en uno! Sin embargo, ocupa MUCHO espacio, es costoso y trae muchas herramientas innecesarias. La portabilidad es difícil.

  • Y ahora este. Wow, es liviano, súper barato, portátil y es bastante intuitivo de usar. Sin embargo, carece de muchas herramientas que puedan facilitar el corte o la fabricación.


Entonces, ¿con cuál irás?

MATLAB se parece a la primera estación de trabajo, mientras que Python será la última.

  • MATLAB proporciona una gran cantidad de herramientas y paquetes sorprendentes para el cuidado de cálculos pesados ​​de una manera fácil y efectiva.
    Sin embargo, tiene sus desventajas similares a lo que mencioné anteriormente: muy caro, ocupa mucho espacio de memoria y energía, y no es portátil en los niveles más bajos de hardware.
  • Python, por otro lado, es gratis, súper fácil de usar y es muy liviano.
    Sin embargo, carece de muchas herramientas y paquetes con los que MATLAB viene incorporado.
    Sin embargo, este aspecto de Python puede abordarse incorporando otras bibliotecas, lo que aumenta su funcionalidad y facilita las cosas. Por ejemplo, agregar un juego de herramientas de perforación o un juego de herramientas rotativas a su juego de herramientas base existente.


Lo mismo se aplica para la investigación. Diferentes temas tienen diferentes requisitos, necesidades y recursos. Habiendo dicho todo eso, no pienses en MATLAB como una vieja reina pesada y desgarbada, mientras que Python es un muchacho débil e ineficaz.

Python se usa mucho en temas de investigación como ciencia de datos, visión por computadora, robótica, aprendizaje automático, por nombrar algunos.

Del mismo modo, MATLAB se usa mucho en visión por computadora, procesamiento de señales, robótica, aprendizaje profundo, por nombrar algunos.

Python, por definición, es un lenguaje de programación. La implementación más común es la de C (también conocida como CPython) y es lo que se conoce principalmente como “Python”. Además del lenguaje de programación y el intérprete, Python también consta de una extensa biblioteca estándar. Esta biblioteca está destinada a la programación en general y contiene módulos para cosas específicas del sistema operativo, subprocesos, redes, bases de datos, etc.

Matlab es un entorno informático numérico popular y un lenguaje de programación, vea más en wiki. El concepto de Matlab se refiere a todo el paquete, incluido el IDE. La biblioteca estándar no contiene tanta funcionalidad de programación genérica, pero incluye álgebra matricial y una biblioteca extensa para el procesamiento y trazado de datos.

Para obtener una funcionalidad similar en Python, necesitará los paquetes NumPy, SciPy y Matplotlib. Scipy es un paquete que tiene el objetivo de proporcionar todas las demás funcionalidades de Matlab, incluidas las de las cajas de herramientas de Matlab (lo que le costaría más en Matlab). Simulink, sin embargo, es un ejemplo que no está cubierto en Python. Si depende de ello, probablemente deba atenerse a Matlab.

En mi experiencia, Matlab es mejor para la exploración de datos debido a la buena interfaz gráfica de usuario. El editor de código también es excelente y facilita la depuración. Incluso puede detectar algunos errores comunes a medida que escribe su código. Entonces, para hacer el trabajo aquí y ahora, elegiría Matlab.

Pero para proyectos más grandes, Python parece alentarme a estructurar mejor el código. Hay muchos paquetes disponibles para manejar tareas comunes, por lo que la programación de Python es como encontrar todas esas piezas y unirlas.

Para la computación científica, algunas cajas de herramientas de Matlab no tienen comparación (por ejemplo, la caja de herramientas wavelet), pero por otro lado Python también tiene algunas cajas de herramientas excelentes (por ejemplo, scikit-learn) que no tienen un equivalente de Matlab que yo sepa.

Es muy fácil codificar y hacer GUI en MATLAB. El mayor punto a favor de MATLAB son Toolbox, funciones incorporadas y soporte comunitario. Las cajas de herramientas de terceros también están disponibles para matlab. Las funciones incorporadas reducirán el tiempo de desarrollo.

Por otro lado, Python es gratuito, puede ser difícil codificar en Python al inicio en comparación con MATLAB. Para python, hay muchos marcos de GUI disponibles (GuiProgramming – Python Wiki), Python GUI es más rápido que GUI basado en MATLAB.

Finalmente, este artículo dará más información sobre por qué Python es importante en el campo de la investigación. https://www.stat.washington.edu/~hoytak/_static/papers/why-python.pdf

Comencé a usar Matlab hace 7 años y lo he usado casi todos los días desde entonces. Rara vez ha habido cosas que necesito para mi investigación que no puedo hacer en Matlab. La documentación y la comunidad fueron cruciales para mantener la curva de aprendizaje manejable para mí.

Dicho esto, si tuviera que retroceder en el tiempo 7 años, elegiría Python (+ NumPy + SciPy) o R. IMO, Mathworks no ha hecho un muy buen trabajo al hacer que sus licencias sean portátiles o flexibles y es difícil de implementar lo que construyes en Matlab.

Como dijo George Akkawi, depende casi por completo de la situación en la que se encuentre un usuario.

Si eres un estudiante que trabaja en un laboratorio financiado con otros científicos, utiliza Matlab.

Si eres un experto en CS que solo está buscando hacer algunas matemáticas, solo usa python y termina de una vez.

No dejes que los programadores de Matlab / Python te pongan nervioso, los programadores tienen la mala costumbre de tomarse demasiado en serio.

También he oído hablar de Octave, pero nunca he oído nada bueno al respecto.

MATLAB es más eficiente con su tiempo que Python. Probablemente pueda hacer lo que necesite con cualquiera de ellos, pero si tiene acceso a MATLAB, puede concentrarse en el problema en lugar del idioma.

Dicho esto, hay buenas y malas prácticas de programación que se pueden usar en MATLAB. Intente usar el primero, especialmente si el proyecto se vuelve muy grande.

Matlab es más utilizable de fábrica y viene con una gran cantidad de funcionalidades para el análisis de datos.

Python es un lenguaje de programación de propósito general y generalmente tiene una curva de aprendizaje más pronunciada que Mathlab. Sin embargo, tiene una base de funcionalidad más amplia y se usa en muchas más áreas.

Para la investigación, es mejor seguir con Matlab ya que su GUI es muy amigable. Sin embargo, después de realizar su investigación y comenzar a pensar que desea distribuir sus hallazgos, no puede. A menos que compre la licencia de Matlab, que es muy costosa.

Actualmente estoy trabajando con el progreso para desarrollar un escáner de actividad cerebral 4d basado en tomografía de volumen de capacitancia eléctrica (ECVT). Al principio, este escáner de actividad cerebral 4d se desarrolló utilizando Matlab para fines de investigación. Hasta que en algún momento, muchos hospitales quieren comprar el escáner. No podemos venderlo, ya que todavía estamos usando Matlab para operar el escáner. En este momento estamos migrando de Matlab a Python para poder venderlo legalmente.

Aunque mi uso de Matlab es comercial (geodesia, cartografía, navegación, posicionamiento submarino en la industria petrolera), he trabajado en los departamentos de investigación (secuencialmente) del mayor contratista geofísico y la mayor compañía petrolera. Utilizo Matlab desde 1990. Cuando me retiré en 2010 para comenzar mi consultoría de desarrollo de software técnico (Hydrometronics), estudié Python como alternativa a Matlab y asistí a SciPy ese año. Sin embargo, el mercado me ha llevado a invertir mucho en Matlab debido a las herramientas (guía de construcción de GUI, compilador, .NET Builder, múltiples cajas de herramientas) y el extraordinario soporte telefónico. Si no puedo resolver un problema, ¡The MathWorks tiene ingenieros que se encargan de mí! Sí, es una inversión de $ 15-20K y $ 3K en mantenimiento anual, pero si usted es una empresa comercial, no puede hacerlo más barato usted mismo (de todos modos no puedo). Depende de cuánto usted (y sus clientes) valoren su tiempo. Trabajo principalmente en Windows, pero todo esto se puede hacer en mi Mac y en Linux (aunque no trabajo en este último).

Python le permitirá comenzar a trabajar con prototipos mucho más fácil y rápido, principalmente porque tiene una curva de aprendizaje más fácil que matlab … También encontrará que hay muchas bibliotecas que pueden hacer que su vida sea más fácil y su código más corto, sin embargo. Vale la pena investigar si el tipo de investigación que está buscando tiene bibliotecas y ejemplos en ambas opciones y luego hacer su elección.

Sí, hay mejores opciones.

Yo usaría R en su lugar.
https://en.m.wikipedia.org/wiki/

¡Es gratis y hay muchos paquetes para hacer casi cualquier cosa!

Aquí hay más evidencia:
Entrevista con un converso forzado de Matlab a R – Burns Statistics
Página en skilledup.com

Aquí puede descargarlo: Descargue R-3.2.3 para Windows. El proyecto R para computación estadística.

Depende del tipo de investigación a la que apunte, además, Matlab es un lenguaje de programación específico del entorno, y no puede considerarlo un lenguaje en el que pueda construir una aplicación de escritorio eficiente, por ejemplo, contrario a Python, que es un lenguaje de programación multiplataforma y multipropósito. ..

Matlab es del orden de 10 a 100 veces más rápido que Python en algunas aplicaciones y tiene mejores bibliotecas en algunos casos. Julia estará en el orden de 10 veces más rápido que Matlab [1] El problema es con gráficos y algunas bibliotecas en Julia actualmente. Sin embargo, es más sencillo compartir cosas con Jupyter.

Notas al pie

[1] johnfgibson / whyjulia

hay GNU Octave también para el cálculo numérico. Puedes pensarlo como una versión gratuita de matlab pero no es tan grande como matlab

Para la investigación, MATLAB gana a menos que su área de investigación sea de aprendizaje profundo. Python es para desarrolladores. MATLAB es para investigadores.

Incluso la versión no académica de MATLAB cuesta menos que un par de libros de aprendizaje automático. A cambio, obtiene un excelente soporte al cliente y un software con una interfaz y una sintaxis muy limpias sin el uso de comandos largos que contienen puntos. El código es más corto y muy intuitivo.

More Interesting

¿Cuáles son los temas de investigación más importantes en el complejo campo de big data?

¿Por qué alguien querría ser profesor en lugar de trabajar en Microsoft Research? El beneficio más obvio es que puedes enseñar, pero ¿hay otros beneficios?

¿Cuáles son las oportunidades de investigación para estudiantes universitarios de ciencias de la computación?

¿Cuáles son los problemas no resueltos de la informática?

¿Cómo financió China sus proyectos de investigación civil y de defensa antes del milagro económico chino de 1991?

¿Por qué TeXmacs aún no ha reemplazado a TeX o LaTeX?

Para un estudiante de doctorado ambicioso en seguridad (de sistemas), ¿solo cuentan las 4 conferencias principales (nivel 1)?

¿Cuáles son los mejores algoritmos en informática para dominar inicialmente?

¿Cuáles fueron los temas candentes del aprendizaje automático en 2015?

En el problema del embalaje del contenedor (BPP), ¿por qué el primer ajuste decreciente (FFD) es más eficiente que el primer ajuste creciente (FFI)?

Cómo saber en qué campo de la informática debería investigar en

¿Cuáles son las diferentes áreas en las que un estudiante de informática de segundo año puede realizar su pasantía de verano?

¿Cuáles son los mayores problemas con la seguridad informática en los laboratorios?

¿Cuáles son las mayores diferencias entre la programación con fines científicos (por ejemplo, para modelos en física o economía) y la programación para la web?

Cómo encontrar un tema de investigación en informática adecuado para estudiantes universitarios