Les différences entre Octave et MATLAB?
Je suis un programmeur qui sait Python, Ruby et C qui est en train de décider si apprendre GNU Octave ou Matlab. Je sais qu'ils ont beaucoup en commun, mais il n'est pas clair pour moi la façon dont la syntaxe est similaire ou même les structures de données. Tout le monde dit qu'ils sont "similaires", mais personne ne dit comment semblables qu'ils sont réellement. Le lien ci-dessus montre plusieurs exemples de situations où ils sont syntaxiquement identiques ou similaires, est-ce vrai pour l'ensemble de la langue?
Je suis en train d'apprendre la langue en général à faire plus de calcul scientifique, éventuellement à l'aide d'analyse d'image des bibliothèques. Je sais qu'il y a beaucoup d'autres langues que je puisse programmer, mais mes conseillers de dire que la connaissance de MATLAB ou Octave est crucial dans le domaine des sciences.
En outre, est Matlab vaut le coût? Je n'ai pas beaucoup d'argent, mais si il y a des différences importantes dans les bibliothèques ou ailleurs, je suis sûr que je pourrais trouver de l'argent.
- Puisque vous êtes un étudiant, il vaut la peine de vérifier si votre école offre matlab pour les étudiants gratuit / pas cher; à la fois mon premier cycle et les diplômés des écoles de le faire, ce qui le rend un peu plus facile de décider d'aller avec matlab.
- Oui, mais quand il sort de l'université et va à certains centre de recherche, il faudra l'acheter, et puis ne sais Matlab et pas de solutions de rechange. De penser sur le long terme, si vous voulez faire un carrer de la science, qui semble comme il veut, vous ne devriez pas ignorer cela. Pour ne pas mentionner que ces licences ne peuvent généralement pas être utilisés pour les clusters soit.
- Alors que vous êtes un étudiant, vous devriez être en mesure d'obtenir un matlab licence pour environ 100 dollars (USD). Certes, si vous voulez un peu de l'autre toolboxs ils sont 29 USD par boîte à outils. Donc ne sachant pas ce que les boîtes à outils que vous pourriez avoir, il est difficile de justifier le coût.
- +1 je viens de commencer l'apprentissage d'Octave aujourd'hui car je suis actuellement étudiant l'Apprentissage de la Machine et l'enseignant l'apprentissage recommandé d'Octave (parce que c'est gratuit, parce que METLAB est cher, et parce que l'étudiant sera beaucoup plus productif à obtenir de l'algorithme de machine à travailler en utilisant d'abord d'une Octave ou d'METLAB d'abord, puis une fois son travail, puis de passer à Java ou C++)
- J'aimerais des conseils vous de faire usage de python+opencv
- J'ai pensé que je le mentionne parce que j'étais dans la même situation que vous et presque oubliée cette: Matlab dispose d'un Foyer option de licence pour une utilisation personnelle.
- Pertinentes sur wikibooks l'article: les Différences entre Octave et MATLAB
- Je dirais apprendre Julia. Mais si vous devez vous pouvez aussi regarder SciLab. Dans mon uni des jours où je ne pouvais pas payer Matlab j'ai simplement utilisé GNU Octave ou SciLab
- Stack Overflow est un site pour la programmation et les questions de développement. Cette question semble être hors-sujet, car il n'est pas sur la programmation ou le développement. Voir Quels sont les sujets que pouvez-vous nous parler ici dans le Centre d'Aide. Peut-être Super-Utilisateur ou Unix & Linux Stack Exchange serait un meilleur endroit pour demander cela.
- Je ne vois pas en quoi c'est hors sujet; Matlab / Octave sont similaires outils de programmation utilisés généralement numérique, de la programmation. (Je me rends compte que la question a été fermé pour d'autres raisons).
Vous devez vous connecter pour publier un commentaire.
Plutôt que de vous fournir une liste complète des différences, je vais vous donner mon point de vue sur la question.
Si vous lisez attentivement la page wiki que vous fournissez, vous verrez souvent des phrases comme "Octave prend en charge à la fois, tout en MATLAB exige que la première", etc. Cela montre que l'Octave de développeurs essaient de faire de l'Octave de la syntaxe "supérieure" de MATLAB.
Cette attitude rend Octave perdre son but complètement. L'idée derrière Octave est (ou est devenu, devrais-je dire, voir les commentaires ci-dessous) pour avoir une alternative open source à exécuter m-code. Si elle essaie d'être "mieux", il essaie donc d'être différents, ce qui n'est pas en ligne avec les raisons pour lesquelles la plupart des gens l'utilisent pour. Dans mon expérience, l'exécution des trucs développé en MATLAB ne jamais le travail en une seule fois, sauf pour la très simple, très peu de choses-Pour toute importante fonction, j'ai toujours de traduire beaucoup de choses avant qu'il travaille dans l'Octave, si ce n'est le ré-écrire à partir de zéro. Comment c'est mieux, je ne vois vraiment pas...
Aussi, si vous apprenez l'Octave, il y a beaucoup de syntaxe autorisée dans l'Octave qui ne sont pas autorisées dans MATLAB. Sens -- code écrit en Octave souvent ne fonctionne pas dans MATLAB sans de nombreuses conversions. Il n'est également pas compatible avec les autres autour!
Je pouvais aller sur: The MathWorks a de nombreuses boîtes à outils de MATLAB, il y a Simulink et de ses produits pour lesquels il n'y a vraiment pas d'équivalent dans d'Octave (oui, vous auriez à payer pour tout cela. Mais souvent, votre employeur/école ne fait que de toute façon, et bien, il a au moins existe), prouvé respect de plusieurs normes de l'industrie, outils de test, de validation des outils de gestion des exigences des systèmes, la production de rapports, une communauté beaucoup plus grande & utilisateur de la base, etc. etc. etc. MATLAB est seulement une petite partie de quelque chose de beaucoup plus grand. Octave est...juste Octave.
Donc, mon conseil:
Pourquoi ce dernier point? Parce que, dans les sciences, il y a souvent de grandes bases de code entièrement écrit en MATLAB. Il y a des professeurs, des ingénieurs, des étudiants, des professionnels des codeurs, des tas et des tas de gens qui connaissent tous les moindres détails sanglants de MATLAB, et pas tellement de l'Octave.
Si vous obtenez un nouvel emploi, et tout le monde dans votre nouveau bureau parle espagnol, c'est un peu arrogant à la demande de tout le monde qu'ils commencent à parler l'anglais à partir de là, tout simplement parce que vous ne parle pas/comme l'espagnol. Même avec MATLAB et Octave.
NB - si tous downvoters pourrait simplement laisser un commentaire avec leurs arguments et les raisons d'être d'accord avec moi, ce serait sympa 🙂
Une information plus complète sur le lien pour la liste des différences est sur le Octave de la FAQ. En théorie, tout le code qui s'exécute dans Matlab doit s'exécuter dans une Octave en Octave développeurs de traiter incompatibilité avec Matlab comme des bugs. Donc la réponse à votre première question est oui, en théorie. Bien sûr, tous les logiciels ont des bugs, ni d'une Octave ou Matlab (oui, Matlab) sont sûrs d'eux. Vous pouvez le signaler et que quelqu'un va essayer de les corriger
Octave a également fonctionnalités supplémentaires, la plupart d'entre eux sont en sus de la syntaxe qui, à mon avis, rendre le code plus lisible et plus de sens, surtout si vous êtes habitué à d'autres langues de programmation.
Mais il n'y a plus à Octave que juste le coût monétaire. Octave est gratuit également dans le sens de la liberté, c'est libre, mais je ne pense pas que c'est le lieu de disserter sur la liberté du logiciel.
- Je faire le traitement d'image Octave seul et de trouver que le package d'image adapté à mes besoins. Je ne sais pas, cependant, ce sera le vôtre. Donc, ma réponse à si ça vaut le coût est non, mais certainement d'autres ne seront pas d'accord.
MATLAB est, d'abord et avant tout, une offre commerciale. Par conséquent, tout en MATLAB assez bien fonctionne hors de la boîte. Toutes les fonctionnalités de base solide, et si vous travaillez sur un projet spécial, puis MATLAB dispose probablement d'un add-on, ils peuvent vous vendre qui ajoute beaucoup de supplémentaires spécifiques au domaine .m les fichiers pour vous. Il n'est pas pas cher, mais il fonctionne, et il va faire le travail sans plainte.
Octave montre toujours son open-source, l'information veut être libre racines. C'est gratuit, et il vous rappellera qu'il est libre à chaque occasion. Il est développé par des bénévoles qui déteste Windows avec une passion. Par conséquent, Octave s'exécute sur Windows contrecœur. Il est assez surprenant que, comme beaucoup de MATLAB dispose d'exister comme ils le font.
Mais c'est là le hic. À tout moment vous essayez de faire quelque chose de plus que trivialement complexe, Octave soudain, les pauses dans le subtil et difficile à comprendre par quels moyens. Oups -- le pilote de terminal a eu un dépassement de quelque part au fond de la couche OpenGL. Vous ne pouvez pas imprimer. Oups -- la figure parcelles de faire des choses bizarres avec leurs polices. Bonne chance à comprendre pourquoi. Oups, il y a certains secrets de dépendance entre Octave et quelques autres obscurs, peu de logiciel libre, de sorte qu'il ne compile pas. Bonne chance à comprendre qui il est.
Et l'Octave de réponse est bon! C'est un logiciel libre! Vous disposez de tous le code source, vous pouvez fixer tous les bugs vous-même! Peut-être que si j'avais infini du temps et des ressources sur mes mains, je pouvais passer tout mon temps à corriger les bugs dans le logiciel libre, mais je n'ai personnellement pas. Si j'ai travaillé dans le milieu universitaire, je pourrais.
Donc, à la base, la question de l'opportunité de choisir MATLAB ou Octave se résume à une seule question. Il est intéressant de noter, que la question est toujours la même, au moment de choisir entre les vs gratuit logiciel de variantes.
Et la question est:
Vous avez plus d'argent que de temps?
Octave est essentiellement une version open source de MATLAB. Il a été écrit pour être juste que. MATLAB dispose d'une très belle interface qui rend un peu plus facile à utiliser mais la prochaine version stable d'OCTAVE permettra également d'avoir une interface graphique, que j'ai testé dans unstable, et a l'air fantastique. Octave est beaucoup plus buggé car il a été développé et maintenu par un groupe de bénévoles, où le développement de MATLAB est financé par des millions de dollars par l'industrie. Je suis encore étudiant et je suis à l'aide d'un étudiant de la version de MATLAB, mais je pense passer à l'Octave, une fois la version stable avec le GUI est libéré.
MATLAB est probablement beaucoup plus puissant que l'Octave, et les algorithmes de courir plus vite, mais pour la plupart des applications, Octave est plus que suffisante et est, à mon avis " un outil étonnant qui est entièrement gratuit, où Octave est totalement gratuit.
Je dirais utiliser MATLAB alors que vous pouvez utiliser la version académique, mais l'interrupteur à Octave devrait être transparente comme ils utilisent exactement la même syntaxe.
Enfin, il y a la question de SIMULINK. Si vous voulez faire de la simulation ou de système de contrôle de la conception (il y a probablement des millions d'autres utilisations) SIMULINK est fantastique et est livré avec MATLAB. Je ne pense pas que tout les autres se rapproche de cela, bien que Scilab est apparemment une bonne alternative open source, je n'ai pas essayé.
La paix.
J'ai juste commencé à l'aide d'Octave. Et j'ai vu des gens utiliser Matlab. Et une différence majeure tel que mentionné ci-dessus est qu'Octave a une interface de ligne de commande et Matlab dispose d'une interface graphique. Selon moi, avoir une interface graphique est très bon pour le débogage. Dans Ocatve vous devez exécuter les commandes pour voir quelle est la longueur d'une matrice est etc, mais dans Matlab, il montre bien le tout à l'aide d'une bonne interface. Mais Octave est gratuit et bon pour les tâches de base que je fais. Si vous êtes sûr que vous allez faire juste des trucs de base ou vous ne savez pas ce que vous avez besoin dès maintenant, alors allez-Octave. Vous pouvez payer pour le Matlab lorsque vous vous sentez vraiment la nécessité.
La chose qui rend Matlab si populaire et spécial, c'est son excellente boîtes à outils dans les différentes disciplines. Étant donné que votre objectif principal est d'apprendre Matlab, donc il n'est pas différent si vous travaillez avec Octave ou Matlab!
Aller juste et de l'achat de Matlab sans frais boîte à outils (qui dépend essentiellement de vos principaux) n'est pas vraiment une dépense raisonnable!
Vous pouvez certainement avoir un bon départ avec Octave, et de suivre des tonnes de tutoriels sur Matlab sur internet.
Il n'y a pas beaucoup que je voudrais ajouter à Rody Oldenhuis réponse. J'ai l'habitude de suivre la stratégie que toutes les fonctions que j'écris doit s'exécuter dans Matlab.
Certaines fonctions spécifiques, je l'ai tester sur les deux systèmes, pour les cas d'utilisation suivants:
a) octave n'a pas besoin d'un serveur de licence - par exemple, si votre institution ne prend pas en charge les licences locales. Je l'ai utilisé une fois dans une situation où le système que j'ai utilisé un script sur avait pas de connexion à internet et allait courir pour un temps très long (dans un coin du labo) et utilisé par beaucoup d'utilisateurs différents. Remarque: ce n'est pas sur le coût de la licence, mais sur les questions techniques.
b) Octave prend en charge d'autres plates-formes, par exemple, le Rasberry Pi (http://wiki.octave.org/Rasperry_Pi) - qui peut venir dans maniable.
Fonctions imbriquées et les fermetures sont désormais pris en charge par de nombreuses langues, y compris MATLAB.
JavaScript favorise les fermetures comme un principe de conception de première classe.
Malheureusement, Octave ne prend pas en charge les fermetures (fonctions imbriquées avec une portée lexicale).
Selon http://osdir.com/ml/octave-bug-tracker/2013-06/msg00210.html on pourrait même avoir l'impression que les développeurs ne veulent pas ou sont incapables de faire les choses.
Cela permettra de briser beaucoup de code, dans les deux sens. Aucune solution de contournement.
Octave et matlab ont beaucoup de similitudes. Mais Octave est une interface de ligne de commande. Vous avez à chaque commande dans l'invite de commande, tandis que matlab est livré avec le meilleur GUI. Je recommande d'abord que vous utilisez matlab version élève; après l'apprentissage des leçons de base l'utilisation de gnu octave permentaly. Gnu octave est livré avec une interface graphique, mais c'est une version de développement maintenant. Il y a quelques frontal graphique pour gnu octave, comme guioctave, xoctave(pas libre), DomainMath IDE,etc.