Comparaison d'Octave, Spyder, Freemat et Scilab comme alternatives à MATLAB


20

J'essaie de trouver une alternative pour MATLAB et j'ai trouvé jusqu'à présent:

  • GNU Octave
  • Spyder
  • FreeMat
  • Scilab

J'essaie de trouver quelle est la meilleure alternative à MATLAB. Je suis particulièrement préoccupé par les performances et l'intégrité des résultats.


1
Vous devriez également considérer R. Cette question sur StackOverflow a probablement la meilleure comparaison
Oli

IPython est manquant
zetah

Réponses:


10

Eh bien, vous êtes dans un régal J'ai utilisé tous les langages de programmation / logiciels que vous avez mentionnés. FreeMat et Spyder je n'ai pas trop d'expérience mais j'en ai. Les autres que je connais.

GNU Octave lance de loin la concurrence. Sa syntaxe a une compatibilité extrême avec celle de MATLAB . La seule différence, je suis au moins au courant, à part la boîte à outils étrange, que vous pouvez essayer de remplacer par les packages ici, est que GNU Octave peut définir des fonctions à partir de la ligne de commande.

Je ne sais pas si vous connaissez QtOctave . QtOctave est une interface (GUI) pour le langage de programmation GNU Octave. QtOctave est également livré avec un éditeur.

Scilab remplace également MATLAB. Il a quelques différences en termes de syntaxe mais rien que vous ne pouvez pas comprendre si vous recherchez la documentation qui l'accompagne.

FreeMat est le pire, à mon avis au moins, des logiciels dont la syntaxe est fortement basée sur MATLAB. Ma preuve en est en trois parties: premièrement, dans le centre du logiciel, il reçoit la note la plus basse des quatre logiciels en question. Deuxièmement, il n'est pas fréquemment mis à jour, la dernière version du centre de logiciels a été mise à jour en 2008. Troisièmement, à la suite de mon deuxième élément de preuve, ses fonctions sont quelque peu à la traîne. Le côté positif, cependant, est que sa syntaxe est hautement compatible avec MATLAB.

J'ai utilisé Spyder , mais je n'ai peur que brièvement. Cela semble de première qualité. Le problème est qu'il n'a qu'une compatibilité limitée avec MATLAB, au niveau de la syntaxe. Cela vous oblige à apprendre une partie du langage de programmation Python, c'est-à-dire si vous prévoyez de bien le faire.

Je recommanderais également SageMath car il inclut GNU Octave, (s'il est déjà installé sur votre système) Scilab, (si vous l'avez déjà installé) Numpy, [Numpy et le reste mentionné, sauf indication contraire, viennent avec Sage et donc aucune installation n'est nécessaire ] Scipy, Matplotlib, maxima, fortran parmi tant d'autres. SageMath peut être téléchargé en accédant au site Web http://www.sagemath.org/download-linux.html et en sélectionnant un miroir approprié, en fonction de l'endroit où vous vous trouvez, puis en installant le fichier .tar.lzma approprié. Après cette copie et collez les commandes suivantes dans le 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

Où «x» fait référence aux bits de votre système d'exploitation; 'y' fait référence à la version d'Ubuntu pour laquelle le sage est conçu (par exemple 10.04_lts; 12.04_lts (le _lts est requis dans 'y'), etc.); 'z' fait référence à l'architecture de votre système d'exploitation. (i386, amd64, etc.)


2

De toutes celles que vous avez répertoriées, Octave est la plus compatible avec la syntaxe. En fait, à part certaines des boîtes à outils Matlab coûteuses, Octave devrait exécuter 98% (un nombre que je viens de composer) de votre code. J'utilise Matlab au travail et Octave à la maison.

Octave ne fonctionnera pas (nativement) certaines des interfaces graphiques intégrées comme inputdlg, etc., si vous installez Qtoctave (un IDE pour Octave, sudo apt-get install qtoctave ), vous pouvez utiliser xmlwidget et un wrapper pour obtenir cette fonctionnalité (je peux poster du code si tu es intéressé).

En ce qui concerne les performances, Octave n'est pas aussi rapide (google pour les benchmarks). Cependant, vous pouvez obtenir toutes les versions modernes de Matlab fonctionnant sous Linux (si vous avez une licence) et elles sont incluses sur le disque d'installation par défaut maintenant, et les performances de la version Linux de Matlab sont aussi bonnes et souvent meilleures sur Linux par rapport à Les fenêtres.

Si vous voulez des performances et que vous ne voulez pas utiliser le meilleur logiciel gratuit pour regarder scipy. Mais la syntaxe est moins compatible. Vous devrez réécrire votre code. Spyder est une idée qui utilise python et scipy, scilab est un mélange d'octave et de maxima et quelques autres. Je ne suis pas sûr des performances de freemat mais je ne pense pas qu'il soit aussi développé qu'Octave.

Bonne chance.

Quelques repères

la vitesse

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

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

N'oubliez pas que les repères sont subjectifs. Il existe de nombreuses variables. La seule vraie façon de savoir est de les tester tous sur votre plate-forme en utilisant votre code de traitement.


Si quelqu'un fait une recherche sur Google et trouve de bons repères pour Octave vs Matlab, des informations ou des liens plus détaillés pourraient peut-être être modifiés dans cette réponse.
Eliah Kagan

1

Juste pour clarification: Pourquoi voulez-vous une alternative pour Matlab? La réponse de prasadkumar013 suggère que vous ne pouvez pas utiliser Matlab sur Ubuntu, mais vous pouvez (au moins je l'exécute sur Ubuntu;)). Il existe une documentation communautaire sur la page https://help.ubuntu.com/community/MATLAB .

Si vous voulez une alternative gratuite avec l'octave, la plupart du code matlab fonctionnera directement en octave. Essayez de travailler dans le terminal cependant, l'interface graphique qtoctave n'était pas si conviviale à mon avis.


1

Plus semblable à Matlab = Octave , (lien vers IUG)
Un impressionnant plein d'avenir langue de calcul de haut niveau = julia
Mais ma toute langue préférée autour et à mon avis le plus utile, PYTHON (scipy, sauge, cython ...)


0

http://pdl.perl.org/

PDL ("Perl Data Language") donne à Perl standard la capacité de stocker de manière compacte et de manipuler rapidement les grands tableaux de données à N dimensions qui sont le pain et le beurre du calcul scientifique.


0

Avez-vous déjà essayé Sage ( www.sagemath.org )? C'est un conteneur pour différents logiciels mathématiques et il peut faire des calculs symboliques et numériques. Ces derniers se font en utilisant numpy et scipy. Il a une communauté très active et c'est un projet open source écrit en python.

Puisque vous êtes intéressé par les performances, voici quelques benchmarks (en fin de page également des comparaisons avec Matlab).


0

C'est du beau papier.

Il a une brève explication et divers tests effectués.

BTW Je n'utilise pas MATLAB ou quelque chose comme ça.


-1

Je n'ai pas fait de comparaison réelle, mais d'après mon expérience, une octave en perspective de performance est mieux que MATLAB.

Vous devez noter que "tout est relatif", les différentes boîtes à outils ont des performances différentes.

Si vous avez une mémoire RAM limitée sur votre machine, je dirais que tout fonctionnerait mieux que MATLAB.


-2

Mon collège utilise MATLAB sur leurs PC Windows. Mais pour utiliser MATLAB sur Ubuntu, j'avais deux choix

  1. Installez MATLAB sur Wine ou tout autre logiciel de virtualisation
  2. Trouver un équivalent Linux

Comme la virtualisation est très lourde sur mon ordinateur portable, j'ai cherché une alternative. Après de nombreux essais de logiciels, je me suis finalement installé pour OCTAVE. Il peut exécuter la plupart des codes MATLAB standard. Au lieu de GNU Octave, il vaut mieux opter pour qt Octave. Alors que le premier est basé sur un terminal, le dernier est basé sur une interface graphique. Mon choix est d'opter pour qt octave

sudo apt-get install qtoctave


4
Un troisième choix serait d' installer la version Linux de Matlab .
Eliah Kagan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.