Categorías
MATLAB Python SciLab

Python para usuarios de MATLAB

Si bien existen varias alternativas a MATLAB tales como Scilab y Octave, el uso de Python para sustituir MATLAB va ganando adeptos. Muchos ingenieros y científicos nos consultan respecto a cuales son las verdaderas ventajas Python como nuevo lenguaje de trabajo que consumirá un tiempo valioso de aprendizaje.

Python-Programming-Language

Antes de empezar, es importante destacar que MATLAB es una herramienta muy capaz y en algunos campos (aún) no tiene rival. El gran problema de MATLAB es el coste de las licencias junto a algunas inconsistencias de su lenguaje.

El coste de una licencia de MATLAB es a día de hoy de 2000€ más los toolboxes que se requieran (1000€/ud) más 5000€ para el compilador que nos permitirá comercializar nuestro trabajo.

¿Qué alternativas más sencillas y gratuitas existe para MATLAB?

  • Octave es el lenguaje más compatible con MATLAB pero tiene la «desventaja» de estar protegido con licencia GPL por lo que, sin entrar en detalle, deberás facilitar el código de tu aplicación (comercial o no) siempre que hagas un cambio en el original y alguien te lo solicite. Por otro lado, Octave carecía de GUI o interfaz gráfica hasta hace bien poco, lo lo hacía menos atractivo que MATLAB. La gran ventaja de Octave es que es el «mismo» lenguaje por lo que si tienes código hecho en MATLAB seguramente funciones «directamente» en Octave.
  • Scilab pese a ser de licencia similar a la GPL pero francesa (CECILL), no es compatible de forma directa con MATLAB. Sin embargo tiene la ventaja de tener una IDE muy similar a la de MATLAB y ofrece la única alternativa a Simulink llamada XCOS.

En resumen, si dispones de mucho código MATLAB heredado Octave es la mejor opción, pero si buscas algo similar a MATLAB-Simulink entonces SciLab es tu mejor apuesta. A pesar de que estas opciones salvan los costes licencias, Octave y Scilab tienen las mismas limitaciones técnicas que MATLAB.

GNU Octave es la mejor alternativa a MATLAB si se busca compatibilidad con el código ya desarrollado.

Entonces como ingeniero o científico te preguntarás,

¿Por qué es mejor aprender Python para sustituir MATLAB?

  • Python es uno de los lenguajes de programación más sencillos de aprender que existen y se enseña en universidades prestigiosas como el MIT.
  • Tanto Python como sus paquetes o librerías son gratuitos.
  • Están cubiertos por licencia BSD por lo que se permite su comercialización sin ningún tipo de restricción (no tendrás que facilitar el código si no lo deseas).
  • Es un lenguaje de programación bien diseñado, fácil de leer y escalable por lo que tu código será util para pequeñas pruebas como para usos industriales.
  • La integración con otras herramientas y lenguajes es casi siempre posible.
  • Multiplataforma, se puede ejecutar tanto en Linux como en MacOS como en Windows.
  • Existe una cantidad de información y documentación en internet incomparable con el resto de alternativas.
  • Su comunidad se compone desde aprendices a profesionales de diversos ámbitos (no sólo científico)
  • Ejemplo de ello es Nature y Google que lo recomiendan y utilizan.

En resumen, Python es un lenguaje que se usa simplemente para todo (web, bases de datos, redes, interfaces gráficas de usuario, juegos, gráficos, ciencia…)

Categorías
MATLAB Python

Alternativas a MATLAB: Python

Python es un lenguaje de programación sencillo y práctico, que te permite trabajar con mayor rapidez e integrar sistemas con mayor eficacia. Puedes aprender a usar Python y obtener beneficios casi inmediatos en la productividad y reducir los costes de licencia ya que es gratuito. Por todo ello Python se está convirtiendo (si no lo es ya) en una de las alternativas principales a la hora de remplazar a otros lenguajes de programación como MATLAB.

print("Hola mundo!")

¿Por qué Python?

Podemos resumir las ventajas de Python en los siguientes puntos:

  • Software libre y gratuito (con licencia BSD que son permisivas para empresas)
  • Es multiplataforma (Windows, MacOS y Linux)
  • Lenguaje de alto nivel conveniente para un desarrollo rápido
  • Su filosofía enfatiza la simplicidad y legibilidad de código
  • Posee núcleo de lenguaje relativamente pequeño con el apoyo de magníficas librerías (NumPy, SciPy, scikit-learn, pandas, IPython-Jupyter, matplotlib etc.)
  • Multiparadigma: varios estilos de programación son compatibles (imperativo, orientado a objetos, funcional)
  • Integración con C/C++/Fortran y R
  • Amplio espectro de programadores (ocasional <> desarrolladores)
  • Comunidad grande (científica también) y activa (PyCon, SciPy, EuroPython, PyData…)

Parece interesante, ¿cómo empiezo?

Una de los problemas y virtudes de Python es que se usa en muchísimos campos y, por tanto, si alguien quiere empezar la cantidad de información puede llegar a ser problemática. Así que primero busca (¡o pregunta!) si tus tareas habituales las puedes hacer con Python. Por ejemplo, nosotros demostramos que podíamos realizar los ejercicios formación en Ingeniería Química con Python y sus bibliotecas:

Para la instalación de Python, la distribución más interesante en estos momentos, seas científico o no, es Anaconda (http://continuum.io/anaconda); que es igual tanto para los usuarios de Windows, OS X e incluso para las distribuciones de Linux que tienen gestores de paquetes decentes. En general, es lo más parecido a instalar MATLAB (pero gratis y open source), ya que instalas todos los paquetes y puedes ponerte a trabajar 🙂

De hecho, Anaconda incluye un  IDE por defecto tipo MATLAB llamado Spyder:

spyder-windows
Si vienes de MATLAB, Spyder es el entorno de programación (IDE por sus siglas en inglés) que te resultará más cómodo.

Pero una de las cosas más interesantes  es IPython Notebook (Jupyter) que ahora incluye widgets para poder variar parámetros de forma muy sencilla.

En general, aprender Python requiere un poco más de esfuerzo ya que dependes de otras librerías. Pero es que con MATLAB (comercial) cada cosa nueva que quieres hacer te toca adquirir la licencia del toolbox correspondiente lo cual limita bastante a no ser que tú u tu empresa tengáis recursos infinitos.

Nosotros recomendamos dos materiales para aprender Python si se viene de MATLAB y no morir en el intento:

– El “curso” online que realizamos con Pybonacci (deberías pasarte por su blog para que veas todo lo que se puede hacer con Python)

aprender-python-ciencia-ingenieria

– Y Software Carpentry:

Por último, una vez nos sentimos cómodos esta tabla viene muy bien para imitar la forma de trabajar en la que estamos acostumbrados en MATLAB:

Ya estás listo para empezar, si tienes alguna duda puedes preguntarlo en la comunidad de Python para ingenieros que tenemos en Google+.

Actualización: Hemos escrito más cosas sobre Python desde que se publicó esta entrada, para saber más:

Categorías
MATLAB Octave SciLab Simulink XCOS

Alternativas a MATLAB: Scilab

Scilab (http://es.wikipedia.org/wiki/Scilab) es un software gratuito de código abierto para programación numérica que proporciona un entorno para aplicaciones de ingeniería y científicas muy similar a MATLAB.

Reuniendo necesidades industriales y avances científicos, Scilab cubre una amplia gama de áreas, como la aeroespacial, industria energética, química, biología, medicina, finanzas, etc…

Es un lenguaje de programación matemática de alto nivel con acceso a cientos de funciones, estructuras de datos avanzadas y funciones gráficas en 2D y 3D.

Puedes descargar Scilab a través del siguiente enlace:

http://www.scilab.org/products/scilab/download

Además Scilab contiene Xcos, un editor gráfico para el diseño de modelos de sistemas dinámicos híbridos, e incluso funcionalidades GUI, desde donde crear interfaces gráficas para el usuario.

La nueva interfaz de Scilab 5.4.0 es muy similar a MATLAB

Si bien muchas funcionalidades siguen aún en desarrollo, la comunidad (open source) consigue acercarse poco a poco las posibilidades que ofrecen los diversos toolboxes de MATLAB. Scilab debe de considerarse como una alternativa libre y gratuita que complementa a MATLAB no que compite contra ella.

Por otro lado, GNU Octave (http://www.gnu.org/software/octave/)es otro programa para cálculo numérico que se presenta como alternativa comercial. La principal ventaja de Octave frente a Scilab es que el primero busca ser lo más compatible al lenguaje de MATLAB original por lo que los scripts suelen ser prácticamente compatibles.