Je veux apprendre la programmation MATLAB afin de pouvoir effectuer des recherches / analyses par moi-même et aussi, afin de pouvoir étudier / modifier certains scripts MATLAB que j'ai trouvés en ligne, etc.
Cependant, le problème est que je ne peux pas me permettre MATLAB. GNU Octave, d'après ce que j'ai entendu, est tout à fait compatible avec MATLAB. Le défi avec Octave est cependant que la documentation est très clairsemée.
Donc MATLAB d'une part, est d'un coût prohibitif (-ve), mais a beaucoup de bonne documentation, des tutoriels et des scripts en ligne (+), tandis qu'Octave est gratuit (comme dans la bière), même si (c'est compréhensible) il manque une documentation complète, etc. .
Je pense télécharger et installer Octave, mais utiliser la documentation MATLAB (et les scripts) pour m'aider à démarrer. Je suis conscient qu'il existe des différences entre Octave et MATLAB - ce que j'essaie de déterminer, c'est si les différences sont suffisamment importantes pour contrecarrer mes efforts pour (effectivement) "apprendre MATLAB en utilisant Octave".
Tout commentaire constructif est le bienvenu.
Réponses:
Avertissement: je m'énerve parfois lorsque quelqu'un essaie de me dire ce qu'il pense que je dois faire plutôt que de répondre à la question que j'ai posée. Mais je vais prendre un risque et vous proposer une alternative.
Je suggérerais de regarder les packages de calcul scientifique de Python: numpy , matplotlib et scipy . Ensemble, ils vous fournissent la plupart des fonctionnalités de base de MATLAB (dans certains cas, ils vous donnent plus que MATLAB). Ils sont gratuits et open source, et peuvent aujourd'hui avoir une base d'utilisateurs plus large qu'Octave. Une grande partie de l'infrastructure informatique scientifique de Python est prise en charge par Enthought Inc. , et je vous recommande d'installer leur distribution gratuite Enthought Python , qui comprend les trois packages que j'ai mentionnés et plus encore.
Bien sûr, il y a des fonctionnalités de MATLAB (en particulier dans les boîtes à outils, mais Octave n'en a pas) qui manquent à Python. Mais j'utilise Python en combinaison avec des langages de niveau inférieur pour la plupart de mon travail, et cela me permet de programmer dans un langage presque aussi pratique que MATLAB, d'interfacer avec une foule de paquets utiles que MATLAB n'a pas et d'exécuter le même code facile à lire sur un supercalculateur.
Edit : vous pouvez également essayer la distribution Anaconda Python de Continuum Analytics. Il existe une version gratuite qui comprend tous les packages ci-dessus et bien plus encore.
la source
GNU Octave est "principalement compatible avec Matlab", certaines subtilités signifient que tous les scripts ne sont pas portables de MATLAB à Octave.
Il vaut la peine de lire la documentation pour la langue et / ou les notes de compatibilité dans la FAQ ou sur les wikibooks . Il y a aussi des notes de portage .
Des packages similaires aux boîtes à outils MATLAB existent, mais vous devrez les vérifier pour savoir à quel point ils sont similaires. Il existe également des tentatives de conversion de scripts qui prennent en charge les différences entre les deux langues, mais à ma connaissance, aucune n'est parfaite.
la source
Oui, vous pouvez apprendre MATLAB via Octave. Mais la syntaxe Octave est moins restrictive et plus conforme aux langages de script modernes. MATLAB semble en retard à cet égard. Voir ce lien wiki Programmation MATLAB / Différences entre Octave et MATLAB
Une autre différence majeure pour moi était la disponibilité de certaines bibliothèques pour MATLAB mais pas pour Octave.
la source
Pour apprendre généralement la programmation en langage M et le fonctionnement de MATLAB, oui, Octave est très bien. Si vous avez besoin d'une boîte à outils particulière dans le cadre de votre travail et que personne n'en a implémenté une version gratuite, alors vous n'avez pas de chance.
Une édition étudiante de MATLAB n'est pas si chère. Si vous êtes dans une université, il est même possible qu'ils aient une licence de site. Vous devriez examiner les deux possibilités.
la source
J'ai utilisé Octave et MATLAB de manière interchangeable sur les mêmes morceaux de code dans le passé; Je n'ai eu aucun problème de compatibilité. Pour autant que je sache, les principales différences sont les suivantes:
#
ou%
pour des commentaires, Matlab utilise uniquement%
la source
C'est en effet possible, surtout si vous utilisez une interface graphique, comme GUIOctave . Un autre langage que vous pourriez trouver utile parce que de nombreux packages ont été écrits pour lui est R. Il existe également une interface graphique pour le langage R, appelée RStudio, et un document de traduction entre R et MatLab .
la source
Concernant votre question:
je dirais que oui. Tout simplement parce que les paradigmes et les principes sont les mêmes. Les différences de syntaxe sont négligeables et peuvent être résumées dans une feuille de triche (au cas où vous travaillez principalement avec MATLAB un jour).
Une autre suggestion pour une alternative:
comme alternative à MATLAB, j'utilise SciLab . C'est gratuit comme Octave, a une communauté décente qui fournit de l'aide et du support et sa documentation est assez bonne. La documentation intégrée et l'aide pour les fonctions sont similaires à celles de MATLAB. (Ce que j'aime le plus, c'est la possibilité d'exécuter les exemples en un seul clic). La syntaxe est similaire à MATLAB également.
Concernant les similitudes et les différences entre SciLab et MATLAB, ce document pourrait vous intéresser: Une introduction à Scilab du point de vue d'un utilisateur de Matlab, Eike Rietsch, mai 2010 (PDF) .
Un autre avantage de SciLab sur MATLAB: le démarrage et l'interface graphique sont beaucoup plus rapides. Je n'ai pas encore essayé Octave.
la source
Exemple pratique:
J'utilise MATLAB au travail et j'ai suivi le cours gratuit de machine learning en ligne de Stanford le semestre dernier.
J'ai fait tous mes devoirs en octave.
Je n'ai remarqué que 2 différences (j'utilisais uniquement les fonctionnalités de base):
la source
Il y a quelques différences subtiles dans l'interprétation par Octave du langage de programmation MATLAB. Octave utilise respectivement "
endif
" et "endwhile
" pour fermerif
et leswhile
déclarations. Octave vous permet également de déclarer des fonctions sur la ligne de commande. Cependant, il devrait également analyser tout ce que MATLAB analyse, donc si vous vous en tenez au langage de programmation de MATLAB, cela devrait aller.Sachez que les plus grandes différences entre les deux programmes résident dans les fonctions intégrées qui effectuent la plupart des opérations de levage numérique, par exemple "
quad
", "ode15s
" et autres. Cependant, toutes ces fonctions doivent être bien documentées lors de l'utilisation de lahelp
commande " ". Il existe également des listes de diffusion pour Octave si vous avez des questions plus spécifiques qui ne sont pas couvertes par l'aide en ligne.la source
Oui, vous le pouvez absolument, je l'ai fait. Cependant, une grande partie de la puissance de MATLAB vient de certaines de ses boîtes à outils et fonctions intégrées extrêmement faciles à utiliser qui peuvent ou non avoir des équivalents dans Octave.
Sachez également que bien que les langues de base elles-mêmes soient compatibles (à l'exception des nouvelles fonctionnalités OO de MATLAB), Octave a quelques «ajouts» à la syntaxe, comme pouvoir utiliser «! =» Pour NEQ, et il en a aussi quelques-uns d'autres comportements par défaut, comme la façon dont il analyse les fonctions en ligne. Ce sont des choses mineures qui empêcheront le code Octave de s'exécuter dans MATLAB dès le départ, sauf si vous avez pris soin d'éviter de vous fier à ce comportement.
MATLAB est également un environnement informatique complet, et pas seulement un langage qui s'interface avec des routines d'algèbre linéaire optimisées. Donc, ce que vous apprendrez d'Octave n'ira que si loin. Vous serez fonctionnel dans MATLAB si vous maîtrisez Octave, mais vous ne serez pas aussi productif avec MATLAB que vous pourriez l'être.
la source
Le meilleur langage libre qui a une syntaxe semblable à MATLAB est Julia. Il est également plus rapide et dispose d'un système de package plus étendu (entre autres raisons pour lesquelles il est préférable ...), mais la syntaxe d'algèbre linéaire est presque exactement la même (de nombreux algorithmes que vous pouvez traduire en MATLAB en changeant
A[i]
pour l'indexation enA(i)
). Je crois que c'est la meilleure langue à apprendre en ce moment, et vous "connaîtrez accidentellement MATLAB" simplement en l'utilisant.la source
Oui, vous pouvez apprendre Matlab en utilisant Octave. Bien sûr, il y a quelques limitations.
Octave et Matlab partagent une grande partie de leur syntaxe. Les deux sont interchangeables à cet égard. L'expérience dans Matlab est plus riche et conviviale, en particulier lorsque vous travaillez avec des graphiques, bien qu'Octave dispose d'une nouvelle interface utilisateur graphique (GUI) en version bêta. Les deux systèmes convergeront probablement davantage à mesure que l'environnement graphique d'Octave s'améliore.
Il y a beaucoup de cours gratuits sur Coursera qui vous donnent une licence d'étudiant Matlab temporaire gratuite pour la durée du cours. Recherchez des cours d'apprentissage automatique.
la source