80 votes

Pourquoi / quand devrais-je préférer MATLAB à Octave?

Dans notre petit opération, nous avons besoin de prototypage d'algorithmes dans certains langage de niveau plus élevé, avant d'engager un C sur la mise en œuvre du matériel embarqué.

Jusqu'à présent, nous avons été à l'aide de MATLAB pour le faire, mais les coûts de licence commencent à faire mal. Nous envisageons de porter nos code MATLAB pour Octave.

Est-il une raison particulière de ne pas le faire? Vont nous casser la compatibilité, en particulier si nous avons des partenaires externes qui insistent sur l'utilisation de MATLAB? Existe-il des pénalités nous pouvons nous attendre?

51voto

carlosdc Points 7059

En 2008, j'ai essayé de faire la même chose. J'ai vite remarqué le spectacle suivant les bouchons:

  • Les boîtes à outils ne sont pas aussi complète et bien testé. En particulier la boîte à outils de traitement d'image que mon travail s'est fortement appuyé sur (le big show bouchon est que imtransform n'a pas été mis en œuvre).
  • L'Octave débogueur et le générateur de profils ont été primitives par rapport à Matlab
  • Si vous travaillez avec d'autres personnes, il pourrait être très difficile de les amener à changer.
  • Si vous utilisez troisième partie de boîtes à outils, votre sur votre propre en le faisant travailler
  • Octave de parcelles ne sont pas de qualité de la publication

Mais je dois dire que j'ai été en général impressionnés par la façon compatible Octave est avec Matlab, si votre utilisation de Matlab est de base, vous pouvez avoir de la chance. Finalement, c'était en 2008, en deux ans, les choses peuvent changer beaucoup de choses.

24voto

Nathan Fellman Points 31310

Juste à côté de ma tête:

  1. Il existe de nombreuses boîtes à outils Octave n'a pas, comme je l'ai découvert quand j'ai essayé de faire mes devoirs dans une Machine d'Apprentissage au cours de deux semestres d'années.
  2. Octave a une chose à envier débogueur. Il était presque impossible de travailler avec.
  3. Matlab est beaucoup plus rapide pour de nombreux types d'opérations.
  4. Matlab parcelles sont beaucoup plus agréable.
  5. Octave ne dispose pas d'une interface graphique native. Il existe des Interfaces graphiques pour Octave, mais ils sont inférieurs à ceux de Matlab natif.

14voto

Emanuel Vianna Points 128

J'ai testé d'octave et de R trop.

Quant à octave: j'ai été très impressionné par la similitude de l'octave de la syntaxe. Il ne m'a fallu beaucoup de temps pour transposer mes scripts matlab à octave. Meanwihile j'ai un problème particulier sur l'impression des marqueurs conjointement avec errorbar qui a été fixé par Jarno Rajahalme à nabble et de changer le xtick taille de la police, qui contournement j'ai reçu une question de la réponse à nabble. Donc, il reste encore quelques bugs qui avec un peu d'effort peut être vaincue. Si vous avez des expériences de certains problèmes que vous pouvez essayer nabble postale forum: help-octave@octave.org. Par la façon dont mon équipe ne peut pas s'adapter (user friendly), tels qu'ils s'adaptent à matlab, donc nous sommes toujours à l'aide de matlab. Depuis matlab est construit sous gnuplot, une autre façon de corriger ses bugs est l'édition de la générées gnuplot fichier. Le meilleur IDE que j'ai trouvé c'était QtOctave, que j'ai fait un petit compte-rendu dans "Souvenir de Blog".

En matière de R: selon une étude faite par SciViews, R performance est supérieure à matlab et octave. Je n'ai pas beaucoup d'expérience avec R. j'ai étudié mclust paquet a écrit un wikibook chapitre à propos de l'EM de Clustering R. d'ailleurs, il semble avoir une communauté très active. De sorte que vous pouvez packages tiers à l'infini des propositions, qui ne sont pas de l'OMI standardisé. Le meilleur IDE que j'ai trouvé était StatET plugin pour eclipse, JGR (IHM Java pour R) et emacs. Malgré le coût du temps à apprendre un nouveau langage de programmation, si je voulais choisir une plate-forme open source pour faire mon expérience graphique et certains d'exploration de données l'analyse, je voudrais essayer R.

10voto

user1240280 Points 96

Octave a plusieurs syntaxique des améliorations sur matlab, par exemple, vous pouvez dire endif endfor et endfunction au lieu de simplement en end, qui font de débogage beaucoup plus facile.

Octave vous permet également de générer dynamiquement des fonctions, et ont de multiples fonctions définies dans les scripts et le fichier de fonction. Ce qui est nettement plus agréable que matlab est un-fichier-une-approche par la fonction.

Enfin, octave a parcellfun et pararrayfun qui sont très puissantes de traitement en parallèle des outils de matlab qui manque totalement de. Il y a un parfor dans matlab, mais ce n'est pas la meilleure façon de le faire dans mon opinion.

Contre pour l'octave est qu'ils sont un peu en retard sur les boîtes à outils, mais si vous regardez, vous pouvez trouver des choses similaires. fsolve et lsode semble un peu plus lent, mais plus robuste, dans l'octave pour une raison quelconque. Aussi une grande déception pour certaines personnes, cela tend à être le manque de lien symbolique et le DAQ de la boîte à outils, mais ce genre de choses va être exclusive de toute façon.

Python/Numpy est certainement en valeur un tourbillon: il est plus puissant, mais leur syntaxe est destiné aux plus complexes, des morceaux de code.

9voto

Doresoom Points 4081

Octave n'a pas guide , ce qui rend la construction d'interfaces graphiques extrêmement facile. J'utilise régulièrement le guide pour créer des outils pour mes collègues autres que MATLAB.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X