![]() |
1. Notions de base MATLAB et GNU Octave |
![]() |
10:10 min |
Généralités sur MATLAB et GNU Octave, caractéristiques de ces 2 logiciels |
MATLAB est un logiciel commercial de calcul numérique/scientifique, visualisation et programmation performant et convivial développé par la société The MathWorks Inc. À ne pas confondre cependant avec les outils de calcul symbolique ou calcul formel (tels que les logiciels commerciaux Mathematica ou Maple, ou le logiciel libre Maxima).
Le nom de MATLAB vient de MATrix LABoratory, les éléments de données de base manipulés par MATLAB étant des matrices de dimension quelconque (tableaux n-D, pouvant se réduire à des matrices 2D, vecteurs et scalaires) qui ne nécessitent ni déclaration de type ni dimensionnement (on parle de typage dynamique). Contrairement aux langages de programmation classiques (scalaires), les opérateurs et fonctions MATLAB permettent de manipuler directement ces tableaux, donc la plupart du temps sans programmer de boucles, rendant ainsi MATLAB particulièrement efficace en calcul numérique, analyse et visualisation de données en particulier.
Mais MATLAB est aussi un environnement de développement (progiciel) à part entière : son langage de haut niveau, doté notamment de structures de contrôles, nombreux types de données, fonctions d'entrée-sortie et de visualisation 2D et 3D, outils de conception d'interface utilisateur graphique (GUI)... permet à l'utilisateur d'élaborer ses propres fonctions ainsi que de véritables programmes (M-files, aussi appelés scripts étant donné le caractère interprété de ce langage).
MATLAB est disponible sur les systèmes d'exploitation standards (Windows, GNU/Linux, macOS...). Le champ d'application de MATLAB peut être étendu aux systèmes non linéaires et aux problèmes associés de simulation avec le produit complémentaire SIMULINK. Les capacités de MATLAB peuvent en outre être enrichies par des fonctions plus spécialisées regroupées au sein de dizaines de toolboxes (boîtes à outils qui sont des collections de M-files) couvrant des domaines nombreux et variés tels que :
Une API (interface de programmation applicative) rend finalement possible l'interaction entre MATLAB et les environnements de développement classiques (exécution de routines C ou Fortran depuis MATLAB, ou accès aux fonctions MATLAB depuis des programmes C ou Fortran).
Ces caractéristiques (et bien d'autres encore) font aujourd'hui de MATLAB un standard incontournable en milieu académique, dans la recherche et l'industrie.
GNU Octave : logiciel libre offrant la meilleure compatibilité par rapport à MATLAB (qualifiable de "clone MATLAB", surtout depuis la version Octave 2.9/3.x et avec les packages du dépôt Octave-Forge).
Pour l'installer sur votre ordinateur personnel (Windows, GNU/Linux, macOS), voyez notre page "Installation et configuration de GNU Octave".
L'environnement Scientific Python, basé sur le langage Python et constitué d'un très vaste écosystème d'outils et bibliothèques libres, notamment : l'interpréteur interactif IPython, les possibilités de "notebook" avec Jupyter, NumPy pour manipuler des tableaux, SciPy implémentant des fonctions de calcul scientifique de haut niveau, MatPlotLib pour réaliser des graphiques 2D au moyen de fonctions similaires à celles de MATLAB/Octave, Mayavi pour la visualisation 3D, l'IDE Spyder, etc... Voyez à ce sujet notre support de cours Introduction à la programmation en Python !
GNU Octave, associé aux packages Octave-Forge, se présente donc comme le logiciel libre/open-source le plus compatible avec MATLAB. Dans l'apprentissage de MATLAB/Octave, l'un des objectifs de ce support de cours est de vous montrer les similitudes entre Octave-Forge et MATLAB. Il subsiste cependant quelques différences que nous énumérons sommairement ci-dessous. Celles-ci tendent à disparaître avec le temps, étant donné qu'Octave évolue dans le sens d'une toujours plus grande compatibilité avec MATLAB, que ce soit au niveau du noyau de base ou des "packages" Octave-Forge (voir chapitre "Les packages Octave-Forge") implémentant les fonctionnalités des "toolboxes" MATLAB les plus courantes.
Caractéristiques propres à MATLAB :
Caractéristiques propres à Octave-Forge :
4:00 min |
Démarrer MATLAB et GNU Octave |
Lancement de MATLAB ou Octave sous Windows :
Dans les salles d'enseignement EPFL-ENAC-SSIE sous Windows, les raccourcis se trouvent sous :
Dans les salles d'enseignement EPFL-ENAC-SGC sous Windows, ils se trouvent sous :
Lancement de MATLAB ou Octave sous Linux :
Lancement depuis une fenêtre terminal (shell) :
MATLAB : la commande matlab démarre MATLAB en mode interface graphique.
Octave : depuis la version 4.4, la commande octave (sans paramètre) lance Octave en mode commande (Octave CLI) tout en bénéficiant des fonctionnalités liées à la librairie Qt (graphiques, fenêtres de dialogue...). Une autre alternative plus légère consiste à utiliser l'option --no-gui-libs qui n'offre pas les fonctionnalités basées sur Qt mais permet d'effectuer des graphiques basés FLTK.
Si l'exécutable matlab ou octave n'est pas trouvé, complétez le PATH de recherche de votre shell par le chemin complet du répertoire où est installé MATLAB/Octave, ou définissez un alias de lancement intégrant le chemin complet d'accès au répertoire d'installation.
Sortie de MATLAB ou Octave :
ctrl-q
File > Exit
Le "répertoire de travail de base" est celui dans lequel MATLAB ou Octave se place au début d'une session. Il s'agit par défaut du "répertoire utilisateur de base" (appelé home), donc /home/votre_username sous Linux, /Users/votre_username sous macOS, Z:\ sous Windows dans les salles ENAC-SSIE...
Si vous désirez changer automatiquement le répertoire de travail MATLAB/Octave au démarrage :
concernant MATLAB, cela dépend du système d'exploitation :
concernant Octave GUI (quel que soit le système d'exploitation), cela se définit sous Edit > Preferences > General > Octave Startup
1:45 min |
Gestion du prologue utilisateur MATLAB ou GNU Octave |
Le mécanisme des "prologues" permet à l'utilisateur de faire exécuter automatiquement par MATLAB/Octave un certain nombre de commandes en début de session. Il est implémenté sous la forme de scripts (M-files). Le prologue est très utile lorsque l'on souhaite configurer certaines options au démarrage, par exemple :
pkg load package(s) au chapitre "Packages Octave-Forge")
graphics_toolkit au chapitre "Graphiques/Concepts de base")
PS1 au chapitre "Fenêtre de commandes MATLAB/Octave")
EDITOR au chapitre "Éditeur et debugger")
Lorsque MATLAB démarre, il passe successivement par les échelons de prologues suivants :
Lorsque Octave démarre, il passe successivement par les échelons de prologues suivants :
source('chemin/prologue')
MATLAB exécute le premier script nommé finish.m qu'il trouve en parcourant le "répertoire utilisateur de base" puis les différents répertoires définis dans le path MATLAB
Octave s'appuie sur la fonction
atexit
6:25 min |
Les différentes fenêtres des environnements de développement MATLAB et GNU Octave |

Cette interface graphique offre les sous-fenêtres suivantes :

Cette interface graphique offre les sous-fenêtres suivantes :
history). Le double-clic sur une commande permet de la ré-exécuter. Pour ré-exécuter plusieurs commandes, les sélectionner (maj-clic pour sélection continue, ctrl-clic pour sélection discontinue), puis faire droite-clicEvaluate. De plus les commandes sélectionnées peuvent copiées dans le presse-papier avec droite-clicCopy ou être injectées dans un nouveau script avec droite-clicCreate script. Un filtre permet aussi de restreindre l'affichage des commandes contenant une chaîne.
Pour mémoire, d'autres tentatives de développement d'interfaces graphiques à Octave (voire même d'IDE's complets) ont existé par le passé et sont encore parfois utilisées (notamment QtOctave), généralement sous Linux et parfois sous Windows :
6:25 min |
Utiliser l'aide en ligne dans MATLAB et GNU Octave |
help fonction
Passée sans paramètres, la commande help liste les rubriques d'aide principales (correspondant à la structure de répertoires définie par le path)
helpwin fonction, ou
doc sujet, ou menu
Help ou icône
? du bandeau MATLAB

doc sujet

Ex: help inverse retourne dans MATLAB l'erreur comme quoi aucune fonction "inverse" n'existe ; par contre lookfor inverse présente la liste de toutes les fonctions MATLAB/Octave en relation avec le thème de l'inversion (notamment la fonction inv d'inversion de matrices)
Accès au Manuel Octave complet (HTML)
Voyez aussi ce Octave Quick Reference Card (aide-mémoire en 3 pages, PDF) ainsi que cette FAQ
demo { type { nom } } Ex : demo matlab : liste les démos de base MATLAB ; demo toolbox statistics : liste les démos associées à la toolbox statistics
demo('fonction', {N} ) Ex : demo('plot') : affiche des démos relatives à la fonction plot
rundemos(package)
Ex : rundemos('signal-version') : lance les démos du package "signal" (traitement de signaux) dans la version spécifiée (faites pkg list pour connaître le version de package installée)
Sites Web
pkg list -forge
Forums de discussion, mailing-lists, wikis, blogs
Les variables créées au cours d'une session (interactivement depuis la fenêtre de commande MATLAB/Octave ou par des M-files) résident en mémoire dans ce que l'on appelle le "workspace" (espace de travail, voir chapitre "Workspace MATLAB/Octave"). Comme déjà dit, le langage MATLAB ne requiert aucune déclaration préalable de type de variable et de dimension de tableau/vecteur (langage dit à typage dynamique). Lorsque MATLAB/Octave rencontre un nouveau nom de variable, il crée automatiquement la variable correspondante et y associe l'espace mémoire nécessaire dans le workspace. Si la variable existe déjà, MATLAB/Octave change son contenu et, si nécessaire, lui alloue un nouvel espace mémoire en cas de redimensionnement de tableau. Les variables sont définies à l'aide d'expressions.
Un nom de variable valide consiste en une lettre suivie de lettres, chiffres ou caractères souligné "_". Les lettres doivent être dans l'intervalle a-z et A-Z, donc les caractères accentués ne sont pas autorisés. MATLAB (mais pas Octave) n'autorise cependant pas les noms de variable dépassant 63 caractères (voir la fonction namelengthmax).
Ex: noms de variables valides : x_min, COEFF55a, tres_long_nom_de_variable
Ex: noms non valides : 86ab (commence par un chiffre), coeff-555 (est considéré comme une expression), temp_mesurée (contient un caractère accentué)
Les noms de variable sont donc case-sensitive (distinction des majuscules et minuscules).
Ex: MAT_A désigne une matrice différente de mat_A
Pour se référer à un ensemble de variables (principalement avec commandes who, clear, save...), on peut utiliser les caractères de substitution * (remplace 0, 1 ou plusieurs caractères quelconques) et ? (remplace 1 caractère quelconque).
Ex: si l'on a défini les variables x=14 ; ax=56 ; abx=542 ; , alors :
who *x liste toutes les variables x, ax et abx
clear ?x n'efface que la variables ax
Une "expression" MATLAB/Octave est une construction valide faisant usage de nombres, de variables, d'opérateurs et de fonctions.
Ex: pi*r^2 et sqrt((b^2)-(4*a*c)) sont des expressions
Nous décrivons ci-dessous les comandes de base relatives à la gestion des variables. Pour davantage de détails sur la gestion du workspace et les commandes y relatives, voir le chapitre "Workspace MATLAB/Octave".
variable = expression
variable = expression ;
expression
variable
whos {variable(s)}
Layout > Show > Workspace
Window > Show Workspace
![]() |
![]() |
| Workspace browser de MATLAB (ici sous Windows) | Workspace browser de Octave GUI (ici sous Windows) |
Comme pour les noms de variables, les noms de fonctions sont "case-sensitive" (distinction des majuscules et minuscules). Les noms de pratiquement toutes les fonctions prédéfinies MATLAB/Octave sont en minuscules.
Ex: sin() est la fonction sinus, tandis que SIN() n'est pas définie !
Les fonctions MATLAB/Octave sont implémentées soit dans le noyau MATLAB/Octave (fonctions "built-ins"), soit par des "toolboxes" MATLAB, respectivement des "packages" Octave, ou encore par vos propres M-files et packages.
Ex: which sin indique que sin est une fonction built-in, alors que which axis montre dans quel M-file est implémentée la fonction axis.
Attention : les noms de fonction ne sont pas réservés et il est donc possible de les écraser !
Ex: si l'on définissait sin(1)=444, l'affectation val=sin(1) retournerait alors 444 ! Pour restaurer la fonction originale, il faudra dans ce cas passer la commande clear sin, et la fonction sin(1) retournera alors à nouveau le sinus de 1 radian (qui est 0.8415).
L'utilisateur a donc la possibilité de créer ses propres fonctions au moyen de M-files (voir chapitre "Fonctions").
12:00 min |
Les différents types numériques |
De façon interne (c'est-à-dire en mémoire=>workspace, et sur disque=>MAT-files), MATLAB/Octave stocke par défaut tous les nombres en virgule flottante "double précision" (au format IEEE qui occupe 8 octets par nombre, donc 64 bits). Les nombres ont donc une précision finie de 16 chiffres décimaux significatifs, et une étendue allant de 10-308 à 10+308. Cela permet donc de manipuler, en particulier, des coordonnées géographiques.
Les nombres réels seront saisis par l'utilisateur selon les conventions de notation décimale standard (si nécessaire en notation scientifique avec affichage de la puissance de 10)
Ex de nombres réels valides : 3, -99, 0.000145, -1.6341e20, 4.521e-5
Il est cependant possible de définir des réels en virgule flottante "simple précision", donc stockés sur des variables occupant 2 fois moins d'espace en mémoire (4 octets c-à-d. 32 bits), donc de précision deux fois moindre (7 chiffres décimaux significatifs, et une étendue allant de 10-38 à 10+38). On utilise pour cela la fonction de conversion single( nombre | variable ), ou en ajoutant le paramètre 'single' à certaines fonctions telles que ones, zeros, eye... De façon inverse, la fonction de conversion double(variable) retourne, sur la base d'une variable simple précision, un résultat double précision. ATTENTION cependant : lorsque l'on utilise des opérateurs ou fonctions mélangeant des opérandes/paramètres de types simple et double précision, le résultat retourné sera toujours de type simple précision. Vous pouvez vérifier cela en testant vos variables avec la commande whos.
Ex • l'expression 3 * ones(2,2) retourne une matrice double précision
• mais les expressions single(3) * ones(2,2) ou 3 * ones(2,2,'single') ou single(3 * ones(2,2)) retournent toutes une matrice simple précision
Si vous lisez des données numériques réelles à partir d'un fichier texte et désirez les stocker en simple précision, utilisez la fonction textscan avec le format %f32 (32 bits, soit 4 octets). Le format %f64 est synonyme de %f et génère des variables de double précision (64 bits, soit 8 octets).
On vient de voir que MATLAB/Octave manipule par défaut les nombres sous forme réelle en virgule flottante (double précision ou, sur demande, simple précision). Ainsi l'expression nombre = 123 stocke de façon interne le nombre spécifié sous forme de variable réelle double précision, bien que l'on ait saisi un nombre entier.
Il est cependant possible de manipuler des variables de types entiers, respectivement :
• 8 bits : nombre stocké sur 1 octet ; si signé, étendue de -128 (-2^7) à 127
• 16 bits : nombre stocké sur 2 octets ; si signé, étendue de -32'768 (-2^15) à 32'767
• 32 bits : nombre stocké sur 4 octets ; si signé, étendue de -2'147'483'648 (-2^31) à 2'147'483'647 (9 chiffres)
• 64 bits : nombre stocké sur 8 octets ; si signé, étendue de -9'223'372'036'854'775'808 (-2^63) à 9'223'372'036'854'775'807 (18 chiffres)
Les opérations arithmétiques sur des entiers sont plus rapides que les opérations analogues réelles.
On dispose, pour cela, des possibilités suivantes :
Sous MATLAB, certaines opérations mixant des données de type réel avec des données de type entier 64 bits ne sont pas autorisées. Ainsi l'expression 13.3 * int64(12) génère une erreur.
Ex :
• int8(-200) retourne -128 (valeure minimale signée pour int8), int8(-4.7) retourne -5, int8(75.6) retourne 76, int8(135) retourne 128 (valeure maximale signée pour int8)
• uint8(-7) retourne 0 (valeure minimale non signée pour int8), uint8(135.2) retourne 135, uint8(270) retourne 255 (valeure maximale non signée pour int8)
• si a=uint8(240), a/320 retourne 0, alors que single(a)/320 retourne 0.75000
• la série indices1=int8(1:100) occupe 8x moins de place en mémoire (100 octets) que la série indices2=1:100 (800 octets)
• 4.6 * ones(2,2,'int16') retourne une matrice de dimension 2x2 remplie de chiffres 5 stockés chacun sur 2 octets (entiers 16 bits)
Si vous lisez des données numériques entières à partir d'un fichier texte et désirez les stocker sur des entiers et non pas sur des réels double précision, utilisez la fonction textscan avec l'un des formats suivants :
MATLAB/Octave est aussi capable de manipuler des nombres complexes (stockés de façon interne sous forme de réels double precision, mais sur 2x 8 octets, respectivement pour la partie réelle et la partie imaginaire)
Ex de nombres complexes valides (avec partie réelle et imaginaire) : 4e-13 - 5.6i, -45+5*j
Le tableau ci-dessous présente quelques fonctions MATLAB/Octave relatives aux nombres complexes.
| Fonction | Description |
|
real(nb_complexe) imag(nb_complexe) |
Retourne la partie réelle du nb_complexe spécifié, respectivement sa partie imaginaire Ex: real(3+4i) retourne 3, et imag(3+4i) retourne 4 |
| conj(nb_complexe) |
Retourne le conjugué du nb_complexe spécifié
Ex: conj(3+4i) retourne 3-4i |
| abs(nb_complexe) |
Retourne le module du nb_complexe spécifié
Ex: abs(3+4i) retourne 5 |
arg(nb_complexe) |
Retourne l'argument du nb_complexe spécifié
Ex: |
| isreal(var), iscomplex(var) | Permet de tester si l'argument (sclaire, tableau) contient des nombres réels ou complexes |
La fenêtre "Command Window" apparaît donc automatiquement dès que MATLAB ou Octave est démarré (voir illustrations plus haut). Nous présentons ci-dessous quelques commandes permettant d'agir sur le contenu et comportement de cette fenêtre.
page_screen_output (respectivement à 0 pour off et 1 pour on).
En mode paginé, on agit sur le défilement avec les touches suivantes :
• MATLAB: enter pour avancer d'une ligne, espace pour avancer d'une page, q pour sortir (interrompre l'affichage)
• Octave: mêmes touche que pour MATLAB, avec en outre: curseur-bas et curseur-haut pour avancer/reculer d'une ligne ; PageDown ou f, resp. PageUp ou b pour avancer/reculer d'une page ; 1G pour revenir au début ; nombreG pour aller à la nombre-ième ligne ; G pour aller à la fin ; /chaîne pour rechercher chaîne ; n ou N pour recherche respectivement l'occurrence suivante ou précédente de cette chaîne ; h pour afficher l'aide du pagineur
PS1('specification')
Clear Commands > Command Window
Edit > Clear Command Window
La commande
helpwin punct décrit l'ensemble des caractères spéciaux MATLAB. Parmi ceux-ci, les caractères ci-dessous sont particulièrement importants.
| Caractère | Description |
; |
• Suivie de ce caractère, une commande sera normalement exécutée (sitôt enter frappé), mais son résultat ne sera pas affiché. Caractère faisant par la même occasion office de séparateur de commandes lorsque l'on saisit plusieurs commandes sur la même ligne • Utilisé aussi comme caractère de séparation des lignes d'une matrice lors de la définition de ses éléments |
, |
• Caractère utilisé comme séparateur de commande lorsque l'on souhaite passer plusieurs commandes sur la même ligne • Utilisé aussi pour délimiter les indices de ligne et de colonne d'une matrice • Utilisé également pour séparer les différents paramètres d'entrée et de sortie d'une fonction Ex: a=4 , b=5 affecte les variables a et b et affiche le résultat de ces affectations ; tandis que a=4 ; b=5 affecte aussi ces variable mais n'affiche que le résultat de l'affectation de b. A(3,4) désigne l'élément de la matrice A situé à la 3e ligne et 4e colonne |
| ... ("ellipsis") \ |
• Utilisé en fin de ligne lorsque l'on veut continuer une instruction sur la ligne suivante (sinon la frappe de enter exécute l'instruction) |
:("colon") |
• Opérateur de définition de séries (voir chapitre "Séries") et de plage d'indices de vecteurs et matrices
Ex: 5:10 définit la série "5 6 7 8 9 10" |
% ou # |
• Ce qui suit est considéré comme un commentaire (non évalué par MATLAB/Octave). Utile pour documenter un script ou une fonction (M-file) • Lorsqu'il est utilisé dans une chaîne, le caractère % débute une définition de format (voir chapitre "Entrées-sorties") Ex: commentaire : r=5.5 % rayon en [cm] ; format sprintf('Rabais %2u%%', 25) |
%{ plusieurs lignes de code... %} |
• Dans un M-file, les séquences %{ et %} délimitent un commentaire s'étendant sur plusieurs ligne . Notez bien qu'il ne doit rien y avoir d'autre dans les 2 lignes contenant ces séquences %{ et %} (ni avant ni après) |
| ' (apostrophe) |
• Caractère utilisé pour délimiter le début et la fin d'une chaîne de caractère • Également utilisé comme opérateur de transposition de matrice |
Les caractères espace et tab ne sont en principe pas significatifs dans une expression (MATLAB/Octave travaille en "format libre"). Vous pouvez donc en mettre 0, 1 ou plusieurs, et les utiliser ainsi pour mettre en page ("indenter") le code de vos M-files.
Ex: b=5*a est équivalent à b = 5 * a
Pour nous-autres, utilisateurs d'ordinateurs avec clavier "Suisse-Français", rappelons que l'on forme ainsi les caractères suivants qui sont importants sous MATLAB (si vous ne trouvez pas la touche AltGr, vous pouvez utiliser à la place la combinaison ctrl-alt) :
L'usage des touches de clavier suivantes permet de rappeler, éditer et exécuter des commandes MATLAB/Octave passées précédemment :
| Touche | Description |
curseur-haut et curseur-bas |
Rappelle la ligne précédente / suivante |
curseur-gauche et curseur-droite |
Déplace le curseur d'un caractère à gauche / à droite |
| ctrl-curseur-gauche et ctrl-curseur-droite | Déplace le curseur d'un mot à gauche / à droite |
| home et end | Déplace le curseur au début / à la fin de la ligne |
backspace et delete |
Détruit le caractère à gauche / à droite du curseur |
| ctrl-k | Détruit les caractères depuis le curseur jusqu'à la fin de la ligne |
escape |
Efface entièrement la ligne |
enter |
Exécute la commande courante |
ctrl-r |
Passe dans le mode "reverse-i-search" (comme dans le shell Bash sous Linux) permettant de retrouver dans l'historique une commande passée en saisissant une partie de celle-ci. Presser plusieurs fois de suite ctrl-r permet de continuer de rechercher en arrière dans l'historique la même chaîne de caractères. |
Voir en outre, en ce qui concerne Octave, le mécanisme de l'historique au chapitre "Workspace".
Pour copier/coller du texte (commandes, données...) dans la fenêtre de commandes, MATLAB et Octave offrent les mêmes possibilités mais avec une interface différente.
| Fonction | MATLAB (Win/Lin/macOS) |
Octave GUI (Win/Lin/macOS) |
Octave CLI Windows |
Octave CLI Linux (X-Window) |
Octave CLI macOS |
| Copier la sélection dans le "presse-papier" |
Edit > Copy ou ctrl-c (sur macOS cmd-c) |
Edit > Copy ou ctrl-c (sur macOS cmd-c) |
Sélectionner, puis enter. Ou sélectionner puis bouton clic-droite |
La sélection courante est automatiquement copiée dans le "presse-papier" |
Edit > Copy ou cmd-c Si on a une souris à 3 boutons, on peut aussi utiliser la technique Linux |
| Coller le contenu du "presse-papier" à la position courante du curseur d'insertion |
Edit > Paste ou ctrl-v (sur macOS cmd-v) |
Edit > Paste ou ctrl-v (sur macOS cmd-v) |
Bouton clic-droite Pour que cela fonctionne, le raccourci de lancement Octave doit être correctement configuré (voir chapitre "Installation de Octave sous Windows") |
Bouton clic-milieu |
Edit > Paste ou cmd-v Si on a une souris à 3 boutons, on peut aussi utiliser la technique Linux |
Remarque : sous MATLAB sous Linux, si les raccourcis Copier et Coller ne fonctionnent pas, allez dans les [Preferences] sous MATLAB > Keyboard > Shortcuts, et dans le menu "Active settings" passez de "Emacs Default Set" en "Windows Default Set".
La fenêtre "Command Window" MATLAB/Octave offre en outre (comme dans les shell Unix) un mécanisme dit de "commands, variables & files completion" : lorsque l'on entre un nom de fonction/commande, de variable ou de fichier, il est possible de ne frapper au clavier que les premiers caractères de celui-ci, puis utiliser la touche tab pour demander à MATLAB/Octave de compléter automatiquement le nom :
s'il y a une ambiguité avec une autre commande/fonction/variable (commençant par les mêmes caractères), MATLAB affiche alors directement un "menu déroulant" contenant les différentes possibilités ; on sélectionne celle que l'on souhaite avec curseur-haut ou curseur-bas, puis on valide avec enter
si Octave ne complète rien, c'est qu'il y a une ambiguité avec une autre commande/fonction/variable (commençant par les mêmes caractères) : on peut alors compléter le nom au clavier, ou frapper une seconde fois tab pour qu'Octave affiche les différentes possibilités (et partiellement compléter puis represser tab ...)
Dans tous les calculs numériques, MATLAB/Octave travaille toujours de façon interne en précision maximum, c'est-à-dire en double précision (voir plus haut).
On peut choisir le format d'affichage des nombres dans la fenêtre "Command Window" à l'aide de la commande format :
| Commande | Type d'affichage | Exemple |
| format {short {e}} | Affichage par défaut : notation décimale fixe à 5 chiffres significatifs Avec option e => notation décimale flottante avec exposant |
72.346 7.2346e+001 |
| format long {e} | Affichage précision max : 15 chiffres significatifs Avec option e => avec exposant |
72.3456789012345 7.23456789012345e+001 |
| format bank | Format monétaire (2 chiffres après virgule) | 72.35 |
| format hex | En base hexadécimale | 4052161f9a65ee0f |
| format rat | Approximation par des expressions rationnelles (quotient de nombres entiers) | 3.333... s'affichera 10/3 |
Sous Octave seulement, on peut activer/désactiver le mécanisme d'affichage de vecteurs/matrices précédé ou non par un "facteur d'échelle". Toujours activé sous MATLAB, ce mécanisme n'est pas activé par défaut sous Octave.
Ex: la fonction logspace(1,7,5) affichera par défaut, sous Octave :1.0000e+01 3.1623e+02 1.0000e+04 3.1623e+05 1.0000e+0
mais si on se met dans le mode fixed_point_format(1), elle affichera (comme sous MATLAB) :1.0e+07 * 0.00000 0.00003 0.00100 0.03162 1.00000Remarquez le "facteur d'échelle" (de multiplication) 1.0e+07 de la première ligne.
Pour un contrôle plus pointu au niveau du formatage à l'affichage, voir les fonctions sprintf (string print formated) et fprintf (file print formated) (par exemple au chapitre "Entrées-sorties").
4:00 min |
Installation et gestion des packages sous GNU Octave |
Les "packages" sont à Octave ce que les "toolboxes" sont à MATLAB. C'est à partir de la version 2.9.12 que l'architecture d'Octave implémente complètement les packages (Octave étant auparavant beaucoup plus monolithique).
Tous les packages Octave-Forge sont recensés et disponible en téléchargement via le dépôt (repository) officiel https://octave.sourceforge.io/packages.php. L'installation et l'utilisation d'un package consiste à :
pkg install -forge package).
Si vous désirez savoir dans quel package est implémentée une fonction de nom donné (en vue d'installer ce package), vous pouvez consulter la liste des fonctions https://octave.sourceforge.io/list_functions.php (catégorie "alphabetical"). Le nom du package est spécifié entre crochets à coté du nom de la fonction.
S'agissant des packages installés, la commande which fonction vous indiquera dans quel package ou quel oct-file la fonction spécifiée est implémentée, ou s'il s'agit d'une fonction built-in.
Nous décrivons ci-dessous les commandes de base relatives à l'installation et l'usage de packages Octave (voir
help pkg pour davantage de détails).
pkg list {package}
pkg list -forge
pkg describe {-verbose} package(s)
news package
pkg load|unload package(s)
a) pkg install {...} -forge package(s)
b) pkg install {-local|-global} {-verbose} package-version.tar.gz
c) pkg install {...} url
• Si Octave a été démarré en mode super utilisateur (avec sudo octave sous Linux ou macOS), le package est installé par défaut de façon globale (i.e. pour tous les utilisateurs de la machine), à moins de spécifier l'option -local. Si Octave a été démarré depuis un compte non privilégié, l'installation s'effectue par défaut pour l'utilisateur courant (i.e. déposé dans le dossier octave se trouvant dans le "profile" de l'utilisateur), à moins de spécifier l'option -global. Dans le "profile" également, un fichier .octave_packages répertorie les packages locaux de l'utilisateur.
• L'option -verbose est utile pour mieux comprendre ce qui se passe quand l'installation d'un package pose problème.
• L'option -auto n'existant plus depuis Octave 4.2, le package doit ensuite être chargé (manuellement ou via le prologue .octaverc) pour être utilisé
Notez que la plupart des packages étant écrits en C/C++, leur installation par cette procédure requiert la présence d'outils de compilation (p.ex. MinGW sous Windows, Apple XCode sous macOS...)
pkg test package
pkg uninstall package(s)
pkg update
pkg rebuild
dans la mesure où vous n'avez pas installé Octave vis un dépôt alternatif (PPA), avant de tenter d'installer des "packages Octave" selon la technique décrite ci-dessus, commencez par voir si le dépôt de votre distribution GNU/Linux ne propose pas le(s) package(s) que vous cherchez, sous le nom "octave-package" (c'est le cas de l'architecture Octave sous Ubuntu depuis Ubuntu 9.04)