Comparación de Octave, Spyder, Freemat y Scilab como alternativas a MATLAB

20

Estoy tratando de encontrar una alternativa para MATLAB y hasta ahora he encontrado:

  • Octava GNU
  • Spyder
  • FreeMat
  • Scilab

Estoy tratando de encontrar cuál es la mejor alternativa a MATLAB. Me preocupa especialmente el rendimiento y la integridad de los resultados.

usuario33831
fuente
1
También debe considerar R. Esta pregunta en StackOverflow probablemente tenga la mejor comparación
Oli
Falta IPython
zetah

Respuestas:

10

Bueno, estás de enhorabuena. He usado todos los lenguajes de programación / software que mencionaste. FreeMat y Spyder con los que no tengo mucha experiencia pero tengo algunos. Los otros en los que tengo experiencia.

GNU Octave supera con creces a la competencia. Su sintaxis tiene una compatibilidad extrema con la de MATLAB . Las únicas diferencias que conozco al menos, aparte de la extraña caja de herramientas, que puede intentar reemplazar por los paquetes aquí, es que GNU Octave puede definir funciones desde la línea de comandos.

No sé si conoces QtOctave . QtOctave es un frontend (GUI) para el lenguaje de programación GNU Octave. QtOctave también viene con un editor.

Scilab es un reemplazo adecuado para MATLAB también. Tiene algunas diferencias en términos de sintaxis, pero nada que no puedas entender si buscas en la documentación que viene con él.

FreeMat es lo peor, al menos en mi opinión, del software cuya sintaxis se basa en gran medida en MATLAB. Mi evidencia de esto es de tres partes: en primer lugar, en el centro de software recibe la calificación de estrellas más baja de los cuatro programas en cuestión. En segundo lugar, no se actualiza con frecuencia, la última versión en el centro de software se actualizó por última vez en 2008. Tercero, como resultado de mi segunda evidencia, sus funciones son algo rezagadas. Sin embargo, el lado positivo es que su sintaxis es altamente compatible con MATLAB.

He usado Spyder , pero solo brevemente me temo. Parece de primera calidad. El problema es que solo tiene compatibilidad limitada con MATLAB, sintaxis inteligente. Requiere que aprenda algo del lenguaje de programación Python, es decir, si planea hacerlo bien.

También recomendaría SageMath ya que incluye GNU Octave, (si ya está instalado en su sistema) Scilab, (si ya lo tiene instalado) Numpy, [Numpy y el resto mencionado a menos que se especifique lo contrario vienen con Sage y por lo tanto no es necesaria la instalación ] Scipy, Matplotlib, maxima, fortran entre muchos otros. SageMath puede descargarse visitando el sitio web http://www.sagemath.org/download-linux.html y seleccionando un espejo adecuado, en función de dónde se encuentre, y luego instalando el archivo .tar.lzma correspondiente. Después de esto, copie y pegue los siguientes comandos en la terminal (ctrl + alt + T):

cd ~/Downloads
sudo mv sage-linux-xbit-ubuntu_y-z-Linux.tar.lzma /home/username
cd ~
tar --lzma -xvf sage-linux-xbit-ubuntu_y-z-Linux.tar.lzma
cd ~/sage-linux-xbit-ubuntu_y-z-Linux
make
sudo ln -s /home/username/sage-linux-xbit-ubuntu_y-z-Linux/sage /usr/local/bin/sage

Donde 'x' se refiere a los bits de su sistema operativo; 'y' se refiere a la versión de Ubuntu para la que está diseñado el sabio (por ejemplo, 10.04_lts; 12.04_lts (se requiere _lts en 'y'), etc.); 'z' se refiere a la arquitectura de su sistema operativo. (i386, amd64, etc.)

Brenton Horne
fuente
2

De todos los que ha enumerado, Octave es el más compatible con la sintaxis. De hecho, aparte de algunas de las costosas cajas de herramientas de Matlab, Octave debería ejecutar el 98% (un número que acabo de inventar) de su código. Uso Matlab en el trabajo y Octave en casa.

Octave no ejecutará (de forma nativa) algunas de las GUI incorporadas como inputdlg, etc. Si instala Qtoctave (un IDE para Octave, sudo apt-get install qtoctave ) puede usar xmlwidget y un contenedor para obtener esa funcionalidad (puedo publicar código si tú estás interesado).

En cuanto al rendimiento, Octave no es tan rápido (google para puntos de referencia). Sin embargo, puede obtener todas las versiones modernas de Matlab ejecutándose en Linux (si tiene una licencia) y ahora están incluidas en el disco de instalación de forma predeterminada, y el rendimiento de la versión de Matlab para Linux es tan bueno y, a menudo, mejor en Linux en comparación con Windows

Si desea rendimiento y no desea utilizar el software libre mejor para mirar scipy. Pero la sintaxis es menos compatible. Deberá reescribir su código. Spyder es una ide que usa python y scipy, scilab es una mezcla de octavas y máximos y algunos otros. No estoy seguro sobre el rendimiento de freemat, pero no creo que esté tan desarrollado como Octave.

Buena suerte.

Algunos puntos de referencia

velocidad

http://www.osc.edu/research/cse/projects/octave_python.pdf

http://www.wseas.us/e-library/conferences/2010/Corfu/COMPUTERS/COMPUTERS2-56.pdf

Recuerde que los puntos de referencia son subjetivos. Hay muchas variables La única forma verdadera de saber es probarlos todos en su equipo utilizando su código de procesamiento.

cáustico
fuente
Si alguien hace google y encuentra buenos puntos de referencia para Octave vs. Matlab, tal vez se pueda editar información o enlaces más detallados en esta respuesta.
Eliah Kagan
1

Solo para aclarar: ¿por qué quieres una alternativa para Matlab? La respuesta de prasadkumar013 sugiere que no puedes usar Matlab en Ubuntu, pero sí puedes (al menos lo estoy ejecutando en Ubuntu;)). Hay una documentación de la comunidad en la página https://help.ubuntu.com/community/MATLAB .

En caso de que desee una alternativa gratuita con octava, la mayoría del código de matlab funcionará directamente en octava. Sin embargo, trate de trabajar en la terminal, la GUI qtoctave no era tan fácil de usar en mi opinión.

Gerhard Burger
fuente
1

Más similar a MATLAB = Octave , (enlace a la interfaz gráfica de usuario )
Un increíble y prometedor lenguaje de computación de alto nivel = julia
Pero mi lenguaje favorito e IMHO más útil en todo, PYTHON (scipy, sage, cython ...)

Nagordon
fuente
0

http://pdl.perl.org/

PDL ("Perl Data Language") le da a Perl estándar la capacidad de almacenar de forma compacta y manipular rápidamente las grandes matrices de datos N-dimensionales que son la base de la informática científica.

gianni
fuente
0

¿Ya has probado Sage ( www.sagemath.org )? Es un contenedor para diferentes programas matemáticos y puede hacer cálculos simbólicos y numéricos. Los últimos se hacen usando numpy y scipy. Tiene una comunidad muy activa y es un proyecto de código abierto escrito en python.

Como le interesan las actuaciones, aquí hay algunos puntos de referencia (al final de la página también comparaciones con Matlab).

Michele
fuente
0

Este es un buen papel.

Tiene una breve explicación y varias pruebas realizadas.

Por cierto, no uso MATLAB ni nada de eso.

virpara
fuente
-1

No he hecho una comparación real, pero en mi experiencia puramente forma una octava de perspectiva de rendimiento es mejor que MATLAB.

Debe tener en cuenta que "todo es relativo" diferentes cajas de herramientas tienen diferentes rendimientos.

Si tiene RAM limitada en su máquina, diría que cualquier cosa funcionaría mejor que MATLAB.

Ali
fuente
-2

Mi universidad usa MATLAB en sus PC con Windows. Pero por usar MATLAB en Ubuntu, me quedaban dos opciones

  1. Instale MATLAB sobre wine o cualquier software de virtualización
  2. Encuentre un equivalente de Linux

Como la virtualización es muy pesada en mi computadora portátil, busqué una alternativa. Después de muchas pruebas de software, finalmente me decidí por OCTAVE. Puede ejecutar la mayoría de los códigos MATLAB estándar. En lugar de GNU Octave, es mejor optar por qt Octave. Mientras que el primero está basado en terminal, el segundo está basado en GUI. Mi elección es ir por qt Octave

sudo apt-get install qtoctave

prasadkumar013
fuente
44
Una tercera opción sería instalar la versión Linux de Matlab .
Eliah Kagan