452 meneos

Remplazando a Matlab con Python

Matlab es el software rey en carreras de ingeniería a la hora de hacer procesado de señal o cálculos de matrices, sobre todo si uno quiere hacer alguna interfaz gráfica en algún momento. ¿El problema? Propietario y MUY caro. Ha habido muchos intentos de reemplazarlo con software libre, Scilab, Octave... Pero lo curioso es que la solución estaba ahí y muchos no se habían percatado: Python. Desde la madurez de librerías como SciPy y Matplotlib, usar Python para el propósito de Matlab es incluso más cómodo, gracias a las miles de librerías.

negativos: 7   usuarios: 189   anónimos: 263  
compartir:  twitter  facebook  tuenti  
  1. #1   Artículo muy relacionado y muy interesante: vnoel.wordpress.com/2008/05/03/bye-matlab-hello-python-thanks-sage/
    31  votos: 2   link
    el 14-06-2010 19:24 UTC por ktzar ktzar
  2. #2   Ya me parecía a mí muy extraño relacionar Matlab con los Monty Python.
    42  votos: 7   link
    el 14-06-2010 19:33 UTC por sergio_h sergio_h
  3. #3   Matplotlib es un reemplazo perfecto.
    34  votos: 3   link
    el 14-06-2010 19:38 UTC por --130208-- --130208--
  4. #4   Por cierto #0: es.thefreedictionary.com/reemplazando

    Edit: perdón, veo que también se acepta remplazando.
    8  votos: 0   link
    el 14-06-2010 19:39 UTC por --130208-- --130208--
  5. #5   Uff... Después de programar tantos años Perl, cada vez que leo algo de código Python, tan "ordenadito", me viene el recuerdo del Fortran77.

    ¡Larga vida a PDL! ¡"Madlab" rules! xD
    7  votos: 0   link
    el 14-06-2010 19:43 UTC por bismuto bismuto
  6. #6   Para determinadas no está nada mal el Octave.
    7  votos: 0   link
    el 14-06-2010 19:44 UTC por --100555-- --100555--
  7. #7   #6 El "problema" es que los que usen Octave lo verán como un reemplazo y que "le faltan cosas" o que "hay cosas que no se hacen exactamente igual". En cambio al usar Python, ya eres consciente de usar algo distinto, y le verás ventajas o inconvenientes.

    Creo que lo que más cuesta es dejar de usar 1 como primer índice ;)
    46  votos: 4   link
    el 14-06-2010 20:08 UTC por ktzar ktzar
  8. #8   #2 Yo al principio había leído "Reemplazan a los Monty Python"
    7  votos: 0   link
    el 15-06-2010 11:20 UTC por Itilvte Itilvte
  9. #9   me parece muy, muy optimista lo de reemplazar Matlab, a pesar de que no conozco python, pero echandole una ojeada a la web no he visto nada de control, nada parecido al Real Time Workshop de Matlab.
    Por ejemplo, puedo controlar una centralita en tiempo real con python? Hay algo parecido al Simulink?
    Hombre, si te dedicas a mero cálculo matricial desde luego que puedes reemplazar Matlab por muchos otros programas, pero el que Matlab sea casi un estándar en la industria no es simplemente por eso.

    Si alguien conoce una alternativa válida, se agradece que la mencione....
    80  votos: 8   link
    el 15-06-2010 15:52 UTC por nyyrikki nyyrikki
  10. #10   Este artículo es pecado.

    NO utilizarás el nombre de Matlab en vano.....
    10  votos: 2   link
    el 15-06-2010 16:09 UTC por Pablapa Pablapa
  11. #11   #2 #8 Sin coñas. Las referencias a los Monty Python están recomendadas en toda documentación de Python que se precie de tal.
    29  votos: 3   link
    el 15-06-2010 16:19 UTC por sapistri sapistri
  12. #12   #9 no estoy muy seguro pero creo que la ultima vez que mire Python si permitia controlar cosas en tiempo real... :roll:
    5  votos: 0   link
    el 15-06-2010 16:39 UTC por oxelo oxelo
  13. #13   #7 Una cosa es segura.¡Estoy del Matlab hasta las narices! Yo es que lo uso lo menos posible, para filtros, para el simulink y poco más. La especialidad de mi carrera va por el VHDL :-P

    En cualquier caso, no tendría problemas en probar el Python si lo necesito xD
    1  votos: 1   link
    el 15-06-2010 16:47 UTC por --100555-- --100555--
  14. #15   Yo hice el proyecto fin de carrera entero con Python y la librería Matplotlib, por obligación de la empresa en la que estaba (que se ahorraría una buena pasta en la licencia de Matlab). Precisamente estuve el otro día en una entrevista de trabajo me preguntaron mucho al respecto, no se acababan de creer que pudiera realizar todas las funciones de Matlab.

    Python es un lenguaje muy interesante, probablemente el más fácil de "entender" que existe. Para mi lo de ser un lenguaje dinámico me suponía un problema, era complicado encontrar errores, necesitaba muchísimas pruebas de depuración para asegurarse de que el código era correcto.

    Además se echa en falta un buen IDE para el desarrollo de interfaces gráficas, y era complicado hacer aplicaciones redistribuibles (un instalador, vamos).

    El lado positivo, como comenta #11, son los manuales y ayuda al usuario en la que siempre ponen los ejemplos con cosas de Monty Python :-P Además tiene una gran comunidad de usuarios, se encuentran por internet muchas listas de correo y foros donde resuelven tus dudas en un momento.
    61  votos: 5   link
    el 15-06-2010 18:37 UTC por Jagermeister Jagermeister
  15. #16   #9 mirando y buscando por ahí no se si esto te vale code.google.com/p/pylab-works/
    mientki.ruhosting.nl/movies/vp1.html
    7  votos: 0   link
    el 15-06-2010 18:37 UTC por Phoenix-ALX Phoenix-ALX
  16. #17   #9 en mi facultad algunos profes empiezan a usar Octave y están bastante contentos. Yo como ahora me dedico "profesionalmente" al área de telemática, Matlab y la teoría de la señal lo tengo bastante olvidado.
    7  votos: 0   link
    el 15-06-2010 18:41 UTC por cr0n0 cr0n0
  17. #18   #9 sin saber muy bien de lo que hablas, porque no uso MatLab pero si varios RTOS, digo yo que el matlab estará supeditado a los tiempos de scheduling del operativo en el que te encuentras (windows en este caso) así como a las latencias del propio API del operativo (que en windows es cualquier cosa menos deterministico). He visto casos de gente que usa tarjetas con drivers específicos para MATLAB, no se si es que esas tarjetas tienen un driver tan optimizado que apenas tiene latencias ,etc.

    En el caso de PYTHON nadie te impide hacerlo correr en un linux y hacer uso de todos los recursos a tu alcance (NICE y llamadas al API de linux que lo convierten en un pseudo RTOS) para hacerlo ultra-rapido y ultra-responsivo, por no hablar de que puedes extenderlo en C para acceder al bajo nivel sin ningún tipo de problema.

    Otra ventaja increíble de python es su portabilidad, usado en un linux embedded con un ARM o un ATOM puedes tener una maquina MUY MUY versátil a un precio bastante ajustado.

    Repito: No uso python con calculo matemático intensivo como para juzgar si iguala o supera a matlab, pero si te puedo decir que he trabajado extendiendolo para acceder a "cacharreria" a bajo nivel con unos resultados increiblemente buenos.
    46  votos: 4   link
    el 15-06-2010 18:41 UTC por perroloco perroloco
  18. #19   #14 Una mejor y más rápida:
    $ python
    >>>
    :-)
    46  votos: 4   link
    el 15-06-2010 18:41 UTC por ktzar ktzar
  19. #20   Llevo tiempo programando en Python, y ahora estoy en una empresa que el 90% de su producto está en Python, con lo que estoy encantado.

    Aun así, no lo conozco en el entorno de 'sustituto de Matlab', pero conociendo la versatilidad y claridad del lenguaje, seguro que funciona de lujo. Además, ¿será por bibliotecas en Python?

    #14 Eso no es una opción legal.

    #15 No estoy de acuerdo contigo en que le falte un IDE. Al ser independiente del sistema, no puedes hacer un diseñador de interfaces genérico (¿wx? ¿gtk? ¿Qt? ...). Y en el tema del instalable... tampoco estoy de acuerdo. Tienes distutils, que facilitan la instalación en sistemas Unix, y py2exe para sistemas Windows que funciona muy bien.
    42  votos: 4   link
    el 15-06-2010 18:46 UTC por iRiku87 iRiku87
  20. -57  votos: 7   link
    el 15-06-2010 18:55 UTC por liso815 liso815
  21. #23   #21 El problema no es que te de miedo o no. El problema es que usando de forma ilegal software propietario, dejas de usar opciones libres perfectamente legales, como es el caso.

    Luego vienen los llantos por monopolio y esas cosas, pero es que hay gente que dejais a huevo esas cosas.
    25  votos: 2   link
    el 15-06-2010 19:01 UTC por iRiku87 iRiku87
  22. #24   A mi Sage me está gustando mucho, las últimas veces que he tenido que tirar de un software así lo he escogido por delante de Matlab.
    6  votos: 0   link
    el 15-06-2010 19:04 UTC por vierito5 vierito5
  23. #25   Uso python como reemplazo de Matlab desde hace ya unos años (y dispongo de licencias de matlab si me hiciera falta). Es cierto que con matplotlib y numpy/scipy uno puede sustituir matlab para muchas cosas generales, pero aún hay muchas cosas para las que no es suficiente. Por ejemplo, gráficos 3D. Y VTK tiene muy buena pinta pero no es desde luego una solución sencilla.
    16  votos: 1   link
    el 15-06-2010 19:05 UTC por patxaran patxaran
  24. #27   #22 y Simulink. Y COMSOL.
    10  votos: 0   link
    el 15-06-2010 19:06 UTC por --50119-- --50119--
  25. #28   Yo estoy montando una empresa y se basa casi todo en código python salvo algunas cosillas en C, como integra muchas cosas, desde la web, proceso masivo de datos y cálculos Python ha demostrado ser una navaja suiza para la resolución de todo tipo de problemas.

    Tan contento estoy con el que de hecho mi avatar es una foto de Guido Van Rosum.
    17  votos: 1   link
    el 15-06-2010 19:24 UTC por llou llou
  26. #29   #20 Yo usaba py2exe, sí, pero el ejecutable final de Windows ocupaba más de 100 mbs para un programa bastante simple. Además siendo un "newbie" total me costó dios y ayuda hacerlo funcional, con las mil excepciones y librerías que tenía que añadir. Sólo te diré que el script de py2exe que utilizaba ocupaba más de 100 líneas.

    Por cierto, ¿qué IDE utilizáis vosotros, por curiosidad? Yo usaba Wing IDE, que aunque era de pago no costaba mucho. Y no estaba mal, pero comparado con un Netbeans o un eclipse es otro mundo.

    Como curiosidad, mi proyecto era en Python porque el diseñador que hizo la primera fase del mismo no había programado en su vida, y los jefes decidieron asignarle el que creyeron sería el lenguaje más simple de aprender.

    #21 Si se trata de una empresa, si que puede ser un susto de verdad. Y la licencia de Matlab debe andar por los 2500 o 3000 euros por equipo, creo.
    17  votos: 1   link
    el 15-06-2010 19:31 UTC por Jagermeister Jagermeister
  27. #30   #29 El problema de py2exe es que mete todas las dependencias a pelo.

    Yo como "IDE", utilizo Emacs con python-mode :-)
    19  votos: 1   link
    el 15-06-2010 19:35 UTC por iRiku87 iRiku87
  28. #31   Yo tengo Python con Sympy y funciones abreviadas que escribi en mi iPod Touch desde hace un año, y va bastante bien, aunque claro, no es el Matlab, pero casi :-P
    9  votos: 0   link
    el 15-06-2010 19:43 UTC por --18713-- --18713--
  29. #32   #23 vale, si vas por ahí, vale. Creía que eras del rollo de "si eres legal, eres legal" xD
    6  votos: 0   link
    el 15-06-2010 19:51 UTC por liso815 liso815
  30. #33   #14 Una opción mas rápida para tu jefe si quiere ganar mas es no pagarte el sueldo ni cumplir tu contrato. Igual que a ti te parece bien no cumplir el contrato que aceptas de matlab. ¿verdad? :-D
    7  votos: 0   link
    el 15-06-2010 20:00 UTC por Observer Observer
  31. #34   #9 No se qué características tiene esa centralita, pero yo me he construido un grabador de microcontroladores por puerto paralelo en python. Así que si quieres jugar con hardware desde python, desde luego que puedes.
    16  votos: 1   link
    el 15-06-2010 20:05 UTC por Setis Setis
  32. #35   Para los que quieran probarlo, Spyder es un buen entorno para usar Pyhton + Scipy + Matplotlib packages.python.org/spyder/
    26  votos: 2   link
    el 15-06-2010 20:05 UTC por Suspenso Suspenso
  33. #36   Sabeis si hay mucha diferencia entre Matlab+Simulink y Scilab+Scicos??
    Se que van por el mismo camino, pero no se si a Scilab le falta mucho para llegar a ser como Matlab.
    6  votos: 0   link
    el 15-06-2010 20:38 UTC por Lupin_3rd Lupin_3rd
  34. #37   Ah, ¿pero el Matlab no es gratis?.

    ¿Entonces por qué llegan copias a mi ordenador?.
    6  votos: 0   link
    el 15-06-2010 20:52 UTC por KraveNtf KraveNtf
  35. #38   #26 Ya, pero también es de pago.
    #9 Como bien ha dicho alguno por ahí, Octave se suele considerar la versión libre de Matlab (al igual que hay quien considera R la versión libre del spss, etc..), pero otra cosa que puede probarse, es Maxima es.wikipedia.org/wiki/Maxima , que además, es calculo simbólico, tiene pila de años, mejoras continuas y en general, es la leche (Maxima suelen compararlo más con Mathematica)
    27  votos: 2   link
    el 15-06-2010 21:02 UTC por RaistlinMajere RaistlinMajere
  36. #39   Octave no es un intento de remplazarlo, es un logro en toda regla.
    21  votos: 2   link
    el 15-06-2010 21:20 UTC por airwave airwave
  37. #40   #29 Yo uso vim, pero Eclipse tiene un plugin para python (PyDev, creo) y netbeans seguro que también

    Exclusivos de Python el único que era medio decente es el WingIDE, los demás flojitos flojitos.
    7  votos: 0   link
    el 15-06-2010 21:30 UTC por Rouman Rouman
  38. #41   #40 Si, he probado PyDev en Eclipse, y no está mal. Pero Emacs es Emacs xD no requiere chupar 500 Mbs de RAM en el entorno, que además suelo tener más cosas abiertas...
    9  votos: 0   link
    el 15-06-2010 21:33 UTC por iRiku87 iRiku87
  39. #42   #15 IDE para python?

    sudo apt-get install geany
    32  votos: 3   link
    el 15-06-2010 21:39 UTC por AntonPirulero AntonPirulero
  40. #43   ¡Viva Octave! :-)
    10  votos: 0   link
    el 15-06-2010 21:43 UTC por Aladaris Aladaris
  41. #44   Tendré que ser yo quien mencione a www.r-project.org/

    ¿No sirve? joer, si vale para un roto y para un descosido.

    * Veo que no, pues nada. R p'a mi.
    6  votos: 0   link
    el 15-06-2010 22:31 UTC por --177666-- --177666--
  42. #45   #15 #42 IDE Para python => Eclipse + pydev
    (Siempre que tengas RAM de sobra, claro)
    16  votos: 1   link
    el 15-06-2010 22:48 UTC por prejudice prejudice
  43. #46   Otra muy buena alternativa libre con una herramienta para poder reutilizar código de matlab: Scilab.

    www.scilab.org
    6  votos: 0   link
    el 16-06-2010 06:09 UTC por siriob siriob
  44. #47   python lleva las baterías incluidas.
    7  votos: 0   link
    el 16-06-2010 07:31 UTC por odio odio
  45. #48   #15 #42 #45 Yo uso vim.
    Pero si quiero algo gráfico gedit, con autocompletación y navegador de clases y funciones.
    9  votos: 0   link
    el 19-06-2010 12:39 UTC por crafton crafton
comentarios cerrados

menéame