Pregunta:
¿Alternativas gratuitas a Matlab que se ejecutan en Linux?
e-sushi
2014-02-05 07:29:03 UTC
view on stackexchange narkive permalink

Hace poco me uní a la gente que usa Linux. Como resultado, estoy tratando de reemplazar tantas aplicaciones propietarias como pueda, con alternativas gratuitas, y si es posible de código abierto.

Dado que necesito una herramienta decente para mis experimentos matemáticos y Solía ​​usar MATLAB R2013b en mi instalación anterior de Windows, estoy ansioso por aprender sobre alternativas gratuitas, preferiblemente de código abierto, a Matlab que se ejecutarán en Linux (Ubuntu).

¿Existen alternativas gratuitas? a Matlab que se ejecuta en Linux? Lo que es más importante para mí es que la alternativa a Matlab debe ser muy ajustada cuando se trata de compatibilidad de sintaxis ... para que la mayoría de los programas puedan ser portados fácilmente (o - si es posible - importados). Además, estoy bastante seguro de que ninguna alternativa tendrá el conjunto completo de funciones que proporciona Matlab, por lo que también sería importante para mí saber qué diferencias en la funcionalidad debo esperar al usar las alternativas que sugieres. Significado: ¿hay algo que las alternativas gratuitas puedan hacer con MATLAB R2013b y viceversa?

No hay reemplazos de Mathlab con funciones completas. Por lo tanto, espere que falten funciones y un peor rendimiento. Y menos bibliotecas.
Matlab tiene muchas características. ¿Qué funciones usas? ¿Ha probado Scilab, que se esfuerza por ser una alternativa gratuita a Matlab?
Esta pregunta no debe reabrirse, porque los requisitos aún son demasiado vagos.
@e-sushi Si está dispuesto a pagar por Matlab en Windows, ¿por qué no usarlo también en Linux?
@Bernhard Para responder [su pregunta] (http://softwarerecs.stackexchange.com/questions/194/free-alternatives-to-matlab-that-run-on-linux?noredirect=1#comment954_194), citaré el parte de mi pregunta parece que se ha perdido: * "... tratando de reemplazar la mayor cantidad posible de aplicaciones de propiedad, con ** alternativas gratuitas, y si es posible de código abierto, ** ..." * Creo que eso indica claramente que no estoy dispuesto a pagar por Matlab (más).
@e-sushi No tiene sentido que haya aplicaciones de código abierto que reemplacen las aplicaciones propietarias. Debe incluir una lista de especificaciones de lo que desea.
@Bernhard: "tantos como sea posible" parece un requisito muy claro. ¿Existen realmente tantas alternativas de Matlab para Linux que cubren la mayoría de sus características, que elegir una o dos con la compatibilidad más cercana es difícil? ¿Puede nombrar diez de esos programas?
@SF. ¿Estás tratando de convencerme de que está usando todas las funciones? No tiene sentido. Puede que solo esté haciendo algunas transformaciones de datos y trazando. En ese caso, un convertidor de código Matlab a Python podría ser una respuesta válida. Tantos como sea posible no tiene ningún sentido si está usando solo algunos de ellos.
@Bernhard Un pequeño y amable aviso de nuestra sección de ayuda: * "[¿Cuándo no debería comentar?] (Http://softwarerecs.stackexchange.com/help/privileges/comment)… ** Discusión secundaria ** o debate un punto controvertido; utilice [chat] (http://chat.stackexchange.com/) en su lugar;… "*
@e-sushi Está seleccionando las partes equivocadas de mis comentarios. Estoy pidiendo explícitamente tres veces que aclare lo que está buscando exactamente: http://meta.softwarerecs.stackexchange.com/questions/1/is-it-okay-to-ask-for-alternatives
@Bernhard: Si aún no lo ha notado, esta pregunta ya tiene una respuesta aprobada. Algo que satisfizo al autor de la pregunta. Considerar que alguien, utilizando las pautas dadas, fue capaz de dar una respuesta satisfactoria es una prueba fáctica de que la pregunta fue lo suficientemente clara y no requiere más aclaraciones. ¿Crees que puedes dar una solución mejor que Olli si e-sushi responde a tus preguntas? La compatibilidad general en todo el paquete es una métrica tan válida de deseabilidad de un paquete como cualquier otro, independientemente de lo que piense.
@SF. Este sitio está en versión beta privada. El objetivo es formular una buena pregunta de ejemplo. Esta es una mala pregunta como tal. Que haya una respuesta aceptada es completamente irrelevante.
@Bernhard: Esta es su opinión. En mi opinión, esta pregunta es bastante buena, y "la más similar a la dada" es una pauta perfectamente clara y muy aceptable. Realmente no entiendo tu odio. (y si usa todas las funciones o no es discutible. Por ejemplo, soy escritor. Tiendo a hacer preguntas sobre cosas que nunca uso ni pretendo usar, los personajes de mis historias sí lo hacen. Si tuviera que evitar problemas de marcas registradas con mi libro y todavía tengo mi personaje usando un software real no abstracto similar a Matlab, y ejecutándose en Linux, haría la misma pregunta).
Cinco respuestas:
#1
+19
Olli
2014-02-05 07:40:10 UTC
view on stackexchange narkive permalink

No hay un reemplazo único para Matlab en Linux. Matlab es un paquete de software realmente enorme, que incluye un ecosistema de bibliotecas bastante grande.

Octave es una alternativa gratuita para Matlab. Le faltan algunas características, pero todos los conceptos básicos están ahí. He usado ambos, pero es bastante difícil dar una buena evaluación basada en mis propios sentimientos. Esta página enumera algunas diferencias menores, pero principalmente casos en los que Octave es mejor que Matlab. Probablemente el mayor problema es que algunas funciones actúan de manera diferente, por ejemplo, producto de valores booleanos y carga de archivos vacíos. Esto es importante, ya que dificulta la adaptación de sus propios scripts a medida que suceden cosas inesperadas.

Mis propios sentimientos son que

  • Matlab es mucho más maduro que Octave (no debería ser una sorpresa)
  • Matlab es más rápido (no No tengo datos empíricos sobre esto, es solo una sensación)
  • La interfaz de usuario de Matlab es notablemente mejor
  • El soporte de la biblioteca y el código de ejemplo disponible en la web para Matlab son de mayor calidad que para Octave.

Dicho esto, Octave es gratis y Matlab cuesta mucho más de lo que el consumidor promedio puede pagar.


Sagemath es otra alternativa, pero está más cerca de Mathematica en funcionalidad.

Para más soluciones de bricolaje, eche un vistazo a R, Scilab y Python. No obtendrá un paquete todo en uno integrado con estos, y la curva de aprendizaje es bastante empinada.

-1: Creo que las pautas para SR son "un producto por respuesta". De lo contrario, los votos no reflejan la creencia en productos individuales, que es el punto real aquí. Aplicaré un voto de +1 a una respuesta de octava pura, pero no tengo opinión sobre SageMath.
@IraBaxter ¿Puede indicarme esta guía?
@IraBaxter Eso se está discutiendo, pero aún no hay consenso.
@TimPost Gracias por el aviso.
#2
+16
Lyndon White
2014-02-06 20:42:13 UTC
view on stackexchange narkive permalink

Octave

como Olli dijo que Ocatave es una alternativa de matlab:

Características notables (compartidas con matlab):

  • Sintaxis casi idéntica. consumirá casi todos los archivos m sin cambios. el archivo mfile también es su formato predeterminado. La sintaxis es tan idéntica que el curso de matlab de mi universidad usa octava en el autograder, aunque la unidad se enseña completamente en matlab y solo menciona octava una vez al pasar.

  • BLAS Integración de la biblioteca de alta calidad (normalmente creo que está integrado con OpenBlas, pero esto puede depender de su sistema, puede ser Atlas). Debido a BLAS, al igual que matlab, es mucho más eficiente usar técnicas vectoriales (en lugar de bucles for), por lo que un buen código de matlab sigue siendo un buen código de octava .

  • Múltiples subprocesos automáticos para mejorar el rendimiento: si escribe algún código complejo en octava o matlab y abre una herramienta para ver la carga de su CPU, cargará todos sus núcleos. Esta pararelización significa que las cosas deberían funcionar más rápido.
  • Gráficos 3D con interacción del mouse: si crea un gráfico 3D, la ventana que se abre admite la interacción del mouse para hacer zoom, desplazarse y rotar.

También hay algunas características añadidas , pero nunca las he encontrado lo suficientemente notables como para recordarlas.

Falta características notables:

  • Bibliotecas : no hay enlace simultáneo y no existen otras bibliotecas como la Caja de herramientas de procesamiento de señales. Pero existen algunas alternativas como el paquete signal
  • GUI Workspace : el entorno de trabajo de octava es un shell de línea de comandos. Es funcional y usa algo como GNU readline. Cuando traza un gráfico que se abre en una nueva ventana con gráficos completos. (del gráfico). Pero no hay un editor de gráficos, ni un explorador de archivos en el lateral, ni un explorador de variables, etc. Solo un shell.
Corrección: Recientemente instalé Octave 4.2.1 compilando desde la fuente. Si tiene las dependencias adecuadas en su lugar, Octave viene con una GUI ordenada. ** Entonces Octave no es solo un programa de shell. **
#3
+9
Ranveer
2014-02-05 17:07:32 UTC
view on stackexchange narkive permalink

Recomendaría Scilab, ya que lo he usado y descubrí que es una alternativa de código abierto decente para MATLAB. No tiene la solidez y el pulido de un paquete profesional, pero dado que se basa en el lenguaje MATLAB, lo que aprenderá se puede transferir más adelante si cambian sus necesidades o si se encuentra trabajando en un entorno donde MATLAB es el predeterminado.

Citando Richie Cotton en Stack Overflow:

Scilab es para MATLAB como OpenOffice es para MS Office . Es decir, no es un clon del todo y no está tan pulido. Obtiene la mayor parte de la funcionalidad de MATLAB y el precio es mucho más agradable.

[+1] ¿Algo que puedas agregar sobre compatibilidad de sintaxis a Matlab (para saber si es fácil portar cosas existentes a Scilab)?
Scilab tiene un traductor de archivos m incorporado, lo que facilita la transferencia de su código a MATLAB. Además, es multiplataforma, es decir, funciona con Windows / Linux / MacOS. Bueno, ya que solo he usado SCILAB, no podré decir sus ventajas / desventajas sobre otros, pero sí, lo encontré bastante bueno.
También tenga en cuenta que Scilab ha existido por un tiempo y que está patrocinado por el gobierno francés.
#4
+7
Szabolcs
2014-07-01 22:41:32 UTC
view on stackexchange narkive permalink

Eche un vistazo a Julia : http://julialang.org/

Julia está diseñada para trabajos científicos numéricos, incluido el trabajo interactivo. Tiene una interfaz de portátil de buena calidad disponible como Mathematica y Sage. Tiene el mejor rendimiento de su clase, consulte los puntos de referencia en la página principal. Puede llamar a Python, lo que abre muchas bibliotecas útiles para él.

Julia ha sido diseñada específicamente para facilitar la transición a los usuarios de MATLAB. La sintaxis básica es similar. Sin embargo, su lenguaje de programación es más moderno y avanzado que el de MATLAB (por ejemplo, admite metaprogramación).

Julia es un sistema relativamente nuevo, por lo que no es tan completo como otros (R , Octave), pero tiene una comunidad en crecimiento y se muestra muy prometedora.

(como usted dice) Una característica notable de Julia que es particularmente buena en comparación con decir numpy, es que la sintaxis de las operaciones numéricas es casi idéntica a Matlabs. En la medida en que al portar algoritmos numéricos, copiar y pegar y luego corregir las excepciones sea viable.
#5
+5
Nathaniel M. Beaver
2015-10-14 22:38:11 UTC
view on stackexchange narkive permalink

Si no necesita una compatibilidad exacta con Matlab, Freemat es una opción.

enter image description here

http: // freemat.sourceforge.net/

Puede ser bastante rápido, ya que usa LLVM como compilador JIT.

http: // freemat-blog. blogspot.com/2008/02/why-jit-how-to-jit.html

Freemat ha tenido una GUI integrada durante más tiempo que Octave, aunque la GUI de Octave ha mejorado.

El principal inconveniente es que no se desarrolla tan activamente como Octave; la última versión fue en 2013.

https://www.openhub.net/p/_compare?project_0=FreeMat&project_1=GNU+Octave

Usé Freemat en 2010 en una empresa de nueva creación, satisfizo nuestras necesidades.


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...