web-dev-qa-db-fra.com

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

J'essaie de trouver une alternative à 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 la performance et l'intégrité des résultats.

20
user33831

Eh bien, vous allez vous régaler, j'ai utilisé tous les langages de programmation/logiciels que vous avez mentionnés. FreeMat et Spyder Je n'ai pas beaucoup d'expérience mais j'en ai. Les autres je suis expérimenté dans.

GNU Octave bat de loin la concurrence. Sa syntaxe est extrêmement compatible avec celle de MATLAB. Les seules différences, à ma connaissance du moins, mis à 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 êtes au courant de QtOctave . QtOctave est une interface graphique pour le langage de programmation GNU Octave. QtOctave est également fourni avec un éditeur.

Scilab est également un remplacement adéquat pour MATLAB. Il y a quelques différences en termes de syntaxe mais rien ne vous échappe si vous recherchez la documentation qui l'accompagne.

FreeMat est le pire, à mon avis du moins, des logiciels dont la syntaxe est fortement basée sur MATLAB. Mon preuve à cet effet est en trois parties: premièrement, dans le centre logiciel, il reçoit le classement en étoiles le plus bas des quatre logiciels en question. Deuxièmement, la dernière version du centre de logiciels n'a pas été régulièrement mise à jour. Elle a été mise à jour pour la dernière fois en 2008. Troisièmement, en raison de ma deuxième preuve, ses fonctions sont quelque peu à la traîne. L'avantage, cependant, est que sa syntaxe est hautement compatible avec celle de MATLAB.

J'ai utilisé Spyder , mais je crains que brièvement. Cela semble de première qualité. Le problème, c’est qu’il n’a que compatibilité limitée avec MATLAB, en termes de syntaxe. Cela nécessite que vous appreniez un peu du langage de programmation Python, c'est-à-dire si vous avez l'intention 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 le l'avoir installé) Numpy, [Numpy et le reste mentionné sauf indication contraire sont fournis avec Sage et aucune installation n'est donc nécessaire] Scipy, Matplotlib, maxima, fortran parmi beaucoup 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 correspondant. fichier lzma. Après cela, copiez 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 la sauge est conçue (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.)

10
BH2017

De tous ceux que vous avez listés, Octave est le plus compatible avec la syntaxe. En fait, mis à part certaines des boîtes à outils coûteuses de Matlab, 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 lancera pas (nativement) certaines des interfaces graphiques intégrées telles que 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 vous êtes 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 sous Linux (si vous avez une licence) et elles sont incluses par défaut sur le disque d'installation. Les performances de la version Linux de Matlab sont aussi bonnes et souvent meilleures que celles de Linux. Les fenêtres.

Si vous voulez des performances et que vous ne voulez pas utiliser de logiciel libre, mieux vaut 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, de maxima et de quelques autres. Pas sûr de la performance 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

Rappelez-vous que les repères sont subjectifs. Il y a beaucoup de variables. Le seul moyen de le savoir consiste à les tester tous sur votre plate-forme à l'aide de votre code de traitement.

2
Caustic

Plus semblable à MATLAB = ( Octave , (lien vers gui)
Un langage de calcul de haut niveau impressionnant = Julia
Mais mon préféré et IMHO plus utile tout autour de la langue, PYTHON (scipy, sage, cython ...)

1
nagordon

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

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

1
Gerhard Burger

Avez-vous déjà essayé Sage ( www.sagemath.org )? C'est un conteneur pour différents logiciels de mathématiques et il peut faire des calculs symboliques et numériques. Ces derniers sont réalisés avec 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, ici il y a quelques points de repère (à la fin de la page, vous trouverez également des comparaisons avec Matlab).

0
Michele

This est un beau papier.

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

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

0
Rahul Virpara

http://pdl.Perl.org/

PDL ("Perl Data Language") permet au standard Perl de stocker de manière compacte et de manipuler rapidement les grands tableaux de données à N dimensions qui constituent le noyau dur du calcul scientifique.

0
gianni