GNU Octave 3.0, l'alternative libre à Matlab

Posté par . Modéré par Nÿco.
0
27
déc.
2007
Science
GNU Octave est un langage libre de haut niveau destiné principalement aux calculs numériques. La syntaxe vise à être aussi proche que possible du programme propriétaire Matlab. L'interpréteur est en ligne de commande, mais plusieurs interfaces et éditeurs chatoyants existent pour l'habiller.

Depuis la précédente version stable (la vieille 2.1), de nombreux progrès ont été effectués notamment dans les fonctions graphiques, basées sur GNUplot et JHandles. Les sources sont disponibles sous licence GPL, les distributions Linux mettent à jour leurs paquets (utilisez votre gestionnaire de paquet préféré) et des binaires sont téléchargeables pour Windows et Mac OS X sur SourceForge.

Des interfaces avec les langages C/C++ et Fortran permettent d'écrire assez simplement des extensions efficaces. De nombreuses boîtes à outils écrites par la communauté viennent étendre les fonctionnalités.

D'autres solutions open source existent, comme Scilab, moins compatible avec Matlab et dont la licence est restrictive (encore à ce jour), ou SciPy, extension du langage Python, profitant de sa syntaxe, mais non compatible avec Matlab.

Aller plus loin

  • # Dommage

    Posté par (page perso) . Évalué à 2.

    Il n'a pas l'aide de supporter (tout du moins, pour le moment) les formats de fichier audio les plus courant (wav/ogg/...). Je voulais rapidement tester en faisant des filtres ^^.
  • # Interface graphique et éditeurs chatoyants ?

    Posté par . Évalué à 1.

    Même si l'interface en ligne de commande me convient sans problèmes je ne me souviens pas avoir trouvé d'interface graphique pour GNU Octave mis à part "koctave" dont la dernière mise à jour date de 2003... J'ai peut-être mal cherché :)
    • [^] # Re: Interface graphique et éditeurs chatoyants ?

      Posté par . Évalué à 1.

      • [^] # Re: Interface graphique et éditeurs chatoyants ?

        Posté par . Évalué à 1.

        Sous Linux, j'ai trouvé QTOctave assez agréable à utiliser.
        Le mode pour emacs respecte plus la philosophie "roots"
        (le qualifie-je de "chatoyant ?)
        http://www.chemie.fu-berlin.de/chemnet/use/info/octave/octave_31.html

        Sous "les fenêtres", "octave workshop" sert d'illustration à l'article Wikipédia
        (le projet est en pause, mais il fonctionnait pas mal quand j'ai essayé) :
        http://www.math.mcgill.ca/loisel/octave-workshop/

        Les "trophées du libre" 2007 citaient QTOctave
        et donnaient une liste de projets similaires, mais assez anciens et peu avancés :
        http://www.tropheesdulibre.org/QtOctave.html?lang=fr
        -> Koctave http://athlone.ath.cx/~matti/kde/koctave/
        -> Yaog http://yaog.sourceforge.net/
        -> Octivate http://octivate.sourceforge.net/
    • [^] # Re: Interface graphique et éditeurs chatoyants ?

      Posté par (page perso) . Évalué à 3.

      je vais faire mon vieux con, mais quel interet ? L'interface graphique de matlab est la honte des interfaces graphiques, un modele de lourdeur et de laideur. D'ailleurs elle est écrite en java.

      Ce qui manque encore à octave à mon sens, c'est une vrai bonne emulation des graphiques de matlab (2D *et* 3D). Pour l'instant c'est un truc tout batard qui utilise gnuplot (la honte des grapheurs libres, avec un coefficient souplesse/nombre d'options proche de 0) via des pipes bien lents. Pas que les figures de Matlab soient un modele en matière de rapidité ou de conception, mais ça "juste marche"
  • # scilab

    Posté par . Évalué à 1.

    Quelqu'un peut il comparer la chose à scilab ?
    En particulier sur les messages d'erreur, ceux de scilab ne m'ont pas semblés clairs du tout jusque ici.
    • [^] # Re: scilab

      Posté par (page perso) . Évalué à 2.

      GNU Octave est un logiciel libre. Scilab devrait finalement le devenir (
      Cf https://linuxfr.org//~grayswandir/25541.html et http://oumph.free.fr/scilab/ ).
    • [^] # Re: scilab

      Posté par (page perso) . Évalué à 1.

      La version de dev de Scilab 5 va être localisée (au moins en Français et anglais). Donc dans ce cadre, tous les messages (erreur ou pas) sont entrain d'être normalisés pour que ça soit plus explicite et tout.

      Il y a un début de normalisation des messages sur le wiki de Scilab :
      http://wiki.scilab.org/Localization_in_English_-_Standard_me(...)
      • [^] # Re: scilab

        Posté par (page perso) . Évalué à 1.

        Bon allez je vais re-jouer le rôle du vieux con, mais est-ce que ce n'est pas de l'energie un peu gaspillée que de vouloir traduire les messages d'un environnement de ce type. Il me semble que même matlab continue à ne parler qu'anglais non ? Je comprends que ça puisse faire plaisir à deux-trois indépendantistes bretons d'avoir des messages d'erreurs localisés, mais pour tous les gens qui baragouinent un peu l'anglais c'est plus une épine dans le pied qu'autre chose: la traduction est toujours un peu hasardeuse, moins claire, on y emploie des mots bizarres que personne ne comprend et sur lesquels google ne renvoie rien (c'est surtout ce point qui me gêne: on peut chercher un message d'erreur non traduit dans google pour trouver des gens qui ont eu le même probleme, mais avec un message d'erreur traduit eh bien ça ne marche plus).. Un exemple typique c'est la traduction des messages d'erreur de gcc en français, avec ses "jeton invalides" et autres.
        • [^] # Re: scilab

          Posté par (page perso) . Évalué à 1.

          C'est pas parce que Matlab fait (ou ne fait pas) quelque chose que Scilab doit faire de même. ;)

          Je suis d'accord qu'un soft mal traduit est pire qu'un soft en une seule langue.
          Cependant, un logiciel développé par un institut publique français avec une équipe en grande partie française, est-ce de l'énergie gaspillée que de faire une version dans notre langue ?
          De plus, Scilab est utilisé dans les lycées et dans d'autres secteurs de l'éducation. Il a donc vocation à être traduit pour faciliter son utilisation pour des gens non anglophones.
        • [^] # Re: scilab

          Posté par (page perso) . Évalué à 2.

          Peu importe ton jugement, comprends bien qu'il y a des gens qui en ont juste _besoin_ de ces traductions, c'est tout.
      • [^] # Re: scilab

        Posté par . Évalué à 1.

        J'espère que ce n'est que le commencement du début dans ce cas.
  • # it++

    Posté par . Évalué à 1.

    Pour certaines applications un peu plus spécifiques (traitement de signal / télécom), la bibliothèque it++ est faite pour simplifier la vie des gens qui connaissent Matlab (mais avec les avantages de la rapidité du C++). -> http://itpp.sourceforge.net/

    Par contre, ayant très succinctement regardé le Fortran (95, pas 77), il m'a semblé que ce langage avait une syntaxe assez proche de Matlab, une gestion des tableaux très puissante, tout en étant compilé (même s'il n'y a pas de GC). QQ1 sait-il s'il existe une bibliothèque (libre) dans ce langage permettant d'avoir aisément les fonctions classiquement utilisées dans Matlab (FFT, plot, inversion de matrices...) ?
    • [^] # Re: it++

      Posté par (page perso) . Évalué à 2.

      Si tu utilises le compilateur NAG, tu as une GC si tu veux en Fortran 95.

      Pour les bibliothèques mathématiques en Fortran, tu peux regarder du coté de BLAS, LAPACK...

      Question graphique, je ne les ai jamais fait dans Fortran mais à coté en Perl histoire de séparer les choses. Mais je serais surpris qu'il n'y ai pas un accès à PLPLOT depusi le Fortran.
      • [^] # Re: it++

        Posté par . Évalué à 1.

        tu peux regarder du coté de BLAS, LAPACK

        Heu ouais en fait je parlais de quelque chose de simple comme Matlab. BLAS, LAPACK ce n'est pas vraiment le même niveau de concision / lisibilité...
        Dans Matlab (ou it++) je fais inv(H) pour avoir l'inverse de ma matrice. Je fais fft(x) pour calculer la FFT, je vais A*B pour le produit de matrices, etc. Bref, simple !
    • [^] # Re: it++

      Posté par (page perso) . Évalué à 1.

      Il existe aussi openCv (Open Source Computer Vision, licence BSD), bibliothèque plutôt orientée traitement de l'image.
      http://opencvlibrary.sourceforge.net/
      http://sourceforge.net/projects/opencvlibrary/
      • [^] # Re: it++

        Posté par . Évalué à 1.

        Hein, et LabVIEW dans tout ca ?
        Pas tout à fait dans le même domaine quoique tout de même National Instruments et Matlab sont de plus en plus en concurrence, à noter que NI travaille pas mal avec l'INRIA sur l'intégration de Scilab avec LabVIEW.
        • [^] # Re: it++

          Posté par . Évalué à 1.

          LabVIEW n'est pas libre !
          • [^] # Re: it++

            Posté par (page perso) . Évalué à 2.

            LabView pose même des problème en développement car les fichiers sont au format binaire et on n'a pas d'outil de 'diff' dessus. On perds donc une grande partie du suivis de projet que nous donne des outils comme svn.
      • [^] # Re: it++

        Posté par (page perso) . Évalué à 1.

        Il y a aussi la bibliothèque Camellia qui, m'a-t-on dit, est très bien : http://camellia.sourceforge.net/

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.