matlab - online - octave ubuntu
¿Diferencias entre Octave y MATLAB? (9)
Acabo de empezar a usar Octave. Y he visto a gente usar Matlab. Y una diferencia importante como se mencionó anteriormente es que Octave tiene una interfaz de línea de comandos y Matlab tiene una GUI. Según yo, tener una GUI es muy bueno para la depuración. En Ocatve, tienes que ejecutar comandos para ver cuál es la longitud de una matriz, etc., pero en Matlab muestra todo con una buena interfaz. Pero Octave es gratis y bueno para las tareas básicas que hago. Si está seguro de que va a hacer cosas básicas o no está seguro de lo que necesita en este momento, vaya a Octave. Usted puede pagar por el Matlab cuando realmente sienta la necesidad.
Soy un programador que conoce Python, Ruby y algunos C que están tratando de decidir si aprenden GNU Octave o Matlab. Sé que tienen mucho en común , pero no me queda claro cuán similar es la sintaxis o incluso las estructuras de datos. Todos dicen que son "similares", pero nadie dice cuán similares son en realidad. El enlace anterior muestra varios ejemplos en los que son sintácticamente similares o idénticos, ¿es esto cierto para todo el lenguaje?
Estoy tratando de aprender el lenguaje en general para hacer más informática científica, posiblemente utilizando algunas bibliotecas de análisis de imágenes. Sé que hay muchos otros idiomas en los que puedo programar, pero mis asesores dicen que saber MATLAB o Octave es crucial en las ciencias.
Además, ¿vale la pena Matlab el costo? No tengo mucho dinero, pero si hay diferencias importantes en las bibliotecas o en cualquier otro lugar, estoy seguro de que podría encontrar el dinero.
En lugar de proporcionarle una lista completa de las diferencias, le daré mi opinión al respecto.
Si lees atentamente la página wiki que proporcionas, verás a menudo frases como "Octave admite ambas, mientras que MATLAB requiere la primera" etc. Esto muestra que los desarrolladores de Octave intentan hacer que la sintaxis de Octave sea "superior" a la de MATLAB.
Esta actitud hace que Octave pierda completamente su propósito. La idea detrás de Octave es (o se ha convertido , debería decir, ver los comentarios a continuación) tener una alternativa de código abierto para ejecutar m-code. Si trata de ser "mejor", trata de ser diferente , lo que no está en línea con las razones por las que la mayoría de la gente lo usa. En mi experiencia, ejecutar cosas desarrolladas en MATLAB nunca funciona de una sola vez, a excepción de cosas realmente simples y realmente cortas: para cualquier función importante, siempre tengo que traducir muchas cosas antes de que funcionen en Octave, si No volver a escribirlo desde cero. Como esto es mejor , realmente no veo ...
Además, si aprendes Octave, hay una gran cantidad de sintaxis permitida en Octave que no está permitida en MATLAB. Significado: el código escrito en Octave a menudo no funciona en MATLAB sin numerosas conversiones. ¡Tampoco es compatible al revés!
Podría seguir: MathWorks tiene muchas cajas de herramientas para MATLAB, existe Simulink y sus productos relacionados para los que realmente no hay equivalente en Octave (sí, tendrías que pagar por todo eso. Pero a menudo tu empleador / escuela lo hace de todos modos. y bueno, al menos existe ), cumplimiento comprobado con varios estándares de la industria, herramientas de prueba, herramientas de validación, sistemas de gestión de requisitos, generación de informes, una comunidad y una base de usuarios mucho más grande, etc. etc. MATLAB es solo una pequeña parte de algo mucho mas grande. La octava es ... solo la octava.
Por lo tanto, mi consejo:
- Averigüe si su escuela pagará por MATLAB. A menudo lo harán.
- Si no lo hacen, y si puede juntar el dinero, compre MATLAB y aprenda a usarlo correctamente. A largo plazo es la mejor decisión.
- Si realmente no puede obtener el dinero, use Octave, pero aprenda la sintaxis de MATLAB y manténgase alejado de la sintaxis de Octave.
¿Por qué este último punto? Porque en las ciencias, a menudo hay bases de código grandes escritas enteramente en MATLAB. Hay profesores, ingenieros, estudiantes, programadores profesionales, mucha y mucha gente que conoce todos los detalles intrincados de MATLAB, y no tanto de Octave.
Si obtienes un nuevo trabajo, y todos en tu nueva oficina hablan español, es un poco arrogante exigir a todos que empiecen a hablar inglés desde ese momento, simplemente porque no hablas / no te gusta el español. Lo mismo con MATLAB y Octave.
NB : si todos los downvoters pudieran dejar un comentario con sus argumentos y razones para no estar de acuerdo conmigo, sería genial :)
Las funciones y cierres anidados ahora son compatibles con muchos idiomas, incluido MATLAB. JavaScript promueve los cierres como un principio de diseño de primera clase.
Lamentablemente, Octave no admite cierres (funciones anidadas con alcance léxico).
Según http://osdir.com/ml/octave-bug-tracker/2013-06/msg00210.html uno podría incluso tener la impresión de que los desarrolladores no quieren o no pueden hacerlo bien.
Esto romperá un montón de código, en ambos sentidos. No hay solución.
Lo que hace que Matlab sea tan popular y especial es su excelente caja de herramientas en diferentes disciplinas. Ya que tu objetivo principal es aprender Matlab, ¡entonces no hay nada diferente si trabajas con Octave o Matlab!
¡Ir y comprar Matlab sin ninguna caja de herramientas interesante (que básicamente depende de su especialización) no es un gasto razonable!
Definitivamente, puedes tener un buen comienzo con Octave y seguir un montón de tutoriales en Matlab en Internet.
MATLAB es, ante todo, una oferta comercial. Por lo tanto, todo en MATLAB funciona bastante fuera de la caja. Todas las funciones básicas son sólidas, y si está trabajando en un proyecto especial, MATLAB probablemente tenga un complemento que pueden venderle y que agrega una gran cantidad de archivos .m adicionales específicos del dominio para usted. No es barato, pero funciona y hará el trabajo sin queja.
Octave siempre muestra sus raíces de código abierto, información que quiere ser libre. Es gratis, y le recordará que es gratis en cada oportunidad. Está desarrollado por voluntarios que odian a Windows con pasión. Por lo tanto, Octave se ejecuta en Windows a regañadientes. Es bastante sorprendente que existan tantas características de MATLAB como lo hacen.
Pero aquí está el problema. Cada vez que intentas hacer algo más que trivialmente complejo, Octave se rompe de forma sutil y difícil de entender. Vaya, el controlador del terminal tuvo un desbordamiento en algún lugar profundo de la capa OpenGL. No se puede imprimir Vaya, las gráficas de figuras hacen cosas extrañas con sus fuentes. Buena suerte averiguando por qué. Vaya, hay una dependencia oculta entre Octave y otro poco de software libre, por lo que no se compilará. Buena suerte averiguando cual es.
Y la respuesta de Octave es hey! ¡Es software libre! Tienes todo el código fuente, ¡puedes arreglar todos esos errores tú mismo! Tal vez si tuviera un tiempo y recursos infinitos en mis manos, podría dedicar todo mi tiempo a corregir errores en el software libre, pero personalmente no. Si trabajara en la academia, podría.
Entonces, en el núcleo, la cuestión de si elegir MATLAB o Octave se reduce a una pregunta. Curiosamente, esa pregunta es siempre la misma, al elegir entre las variantes de software comercial y libre.
Y la pregunta es:
¿Tienes más dinero que tiempo?
No hay mucho que me gustaría agregar a la respuesta de Rody Oldenhuis. Normalmente sigo la estrategia de que todas las funciones que escribo deberían ejecutarse en Matlab.
Algunas funciones específicas que pruebo en ambos sistemas, para los siguientes casos de uso:
a) octava no necesita un servidor de licencias, por ejemplo, si su institución no admite licencias locales. Lo usé una vez en una situación en la que el sistema en el que usé un script no tenía conexión a Internet y se iba a ejecutar durante mucho tiempo (en un rincón del laboratorio) y lo usaban muchos usuarios diferentes. Nota: no se trata del costo de la licencia, sino de los problemas técnicos relacionados.
b) Octave es compatible con otras plataformas, por ejemplo, Rasberry Pi ( http://wiki.octave.org/Rasperry_Pi ), que puede ser útil.
Octava y matlab tienen muchas similitudes. Pero Octave es una interfaz de línea de comandos. Debe escribir cada comando en el símbolo del sistema, mientras que matlab viene con la mejor GUI. Recomiendo primero que uses la versión para estudiantes de matlab; Después de aprender las lecciones básicas, use gnu octave permentaly. Ahora gnu octave viene con gui, pero ahora es una versión de desarrollo. Hay algunos gui front end para gnu octave, como guioctava, xoctave (no gratis), DomainMath IDE, etc.
Octave es básicamente una versión de código abierto de MATLAB. Fue escrito para ser solo eso. MATLAB tiene una GUI muy agradable que la hace un poco más fácil de usar, pero la próxima versión estable de OCTAVE también tendrá una GUI, que he probado en la versión inestable, y se ve fantástica. Octave es mucho más defectuoso porque fue desarrollado y mantenido por un grupo de voluntarios, donde el desarrollo de MATLAB está financiado por millones de dólares por la industria. Todavía soy un estudiante y estoy usando una versión para estudiantes de MATLAB, pero estoy pensando en ir a Octave una vez que se lance la versión estable con la GUI.
MATLAB es probablemente mucho más poderoso que Octave, y los algoritmos se ejecutan más rápido, pero para la mayoría de las aplicaciones, Octave es más que adecuado y es, en mi opinión, una herramienta increíble que es completamente gratuita, donde Octave es completamente gratis.
Yo diría que use MATLAB mientras que puede usar la versión académica, pero el cambio a Octave debería ser transparente ya que usan la misma sintaxis.
Por último, está el tema de SIMULINK. Si desea realizar un diseño de sistema de control o simulación (probablemente hay un millón de otros usos) SIMULINK es fantástico y viene con MATLAB. No creo que ningún otro se acerque a esto, aunque Scilab es aparentemente una alternativa "buena" de código abierto, no lo he probado.
Paz.
Un enlace más completo a la lista de diferencias está en las preguntas frecuentes de Octave . En teoría, todo el código que se ejecuta en Matlab debería ejecutarse en Octave y los desarrolladores de Octave tratan la incompatibilidad con Matlab como errores. Entonces la respuesta a tu primera pregunta es sí en teoría. Por supuesto, todo el software tiene errores, ni Octave ni Matlab (sí, Matlab también) están a salvo de ellos. Puedes denunciarlos y alguien intentará arreglarlos.
Octave también tiene características adicionales , la mayoría de ellas son sintaxis adicional que, en mi opinión, hacen que el código sea más fácil de leer y tener más sentido, especialmente si estás acostumbrado a otros lenguajes de programación.
Pero hay más en Octave que solo el costo monetario. Octave es gratis también en el sentido de libertad, es libre, pero no creo que este sea el lugar para despotricar sobre la libertad del software.
Realizo el procesamiento de imágenes solo en Octave y encuentro que el paquete de imágenes se adapta a mis necesidades. No sé, sin embargo, cuál será el tuyo. Así que mi respuesta a si vale la pena el costo es no, pero ciertamente otros no estarán de acuerdo.