Matlab et Jupyter#
Ce carnet Jupyter a pour objectif de présenter l’intégration d’un noyau d’exécution Matlab avec Jupyter.
Avertissement - Matlab est un logiciel propriétaire et payant. Pour exécuter ce carnet, il est nécessaire de disposer une licence du logiciel.
Pour installer la license établissement de Matlab, voir Télécharger et installer MATLAB
Pour installer le composant logiciel assurant l’intégration entre Matlab et Jupyter, voir MATLAB Integration for Jupyter
Test de connexion au noyau#
Vérification du bon fonctionnement du noyau Matlab
matlabRelease
ans = matlabRelease with properties: Release: "R2023a" Stage: "release" Update: 5 Date: 24-Jul-2023
Calcul matriciel#
matrix = rand(4)
matrix = 4x4 double
0.9040 0.9757 0.2695 0.7098
0.9409 0.3172 0.5896 0.3383
0.8025 0.8128 0.8330 0.0466
0.2420 0.6974 0.3638 0.7636
inv(matrix)
ans = 4x4 double
0.8644 0.8512 -0.3765 -1.1577
0.9052 -1.6168 0.9309 -0.1819
-1.6996 0.7089 0.7147 1.2223
-0.2910 0.8692 -1.0715 1.2605
Figure#
[x, y] = meshgrid(-2:0.0125:2);
z = x.*exp(-x.^2 - y.^2);
[m, c] = contour3(x, y, z, 30);
c.LineWidth = 2;
x = randn(50, 3);
plotmatrix(x)
Fonction utilisateur#
Fonction anonyme sans utilisation de fichier#
Les fonctions anonymes de Matlab sont définie sans avoir besoin de créer un fichier mais leur définition est limitée à une seule expression.
Exemple :
définition de la fonction anonyme dont le handler est « distance_to_origine »
distance_to_origine = @(vector) sum(vector.^2)
distance_to_origine = function_handle with value:
@(vector)sum(vector.^2)
Utilisation de la fonction anonmyme
v = [2 ; 3];
distance_to_origine(v)
ans = 13
Fonction « standard »#
Définissons une fonction stat() qui renvoie la moyenne m et l’écart-type s d’un vecteur d’entrée.
function [m,s] = stat(x)
n = length(x);
m = sum(x)/n;
s = sqrt(sum((x-m).^2/n));
end
Au moment d’appeler la fonction stat() une erreur se produit, car Matlab s’attend à lire la définition de la fonction le fichier stat.m.
values = [12.7, 45.4, 98.9, 26.6, 53.1];
[average, stdev] = stat(values)
Unrecognized function or variable 'stat'.
Pour définir correctement la fonction stat(), il faut créer le fichier nommé stat.m dont le contenu est
function [m,s] = stat(x)
n = length(x);
m = sum(x)/n;
s = sqrt(sum((x-m).^2/n));
end
Si nécessaire il faut ajouter le chemin d’accès au fichier stat.m à la liste des chemins d’accès de Matlab. Exemple :
addpath("./notebooks");
Cette fois-ci, l’appel à la fonction stat() répond correctement
[average, stdev] = stat(values)
average = 47.3400
stdev = 29.4124
Affichage d’un code non exécutable#
Il est parfois utile d’écrire du code dans une cellule Markdown simplement pour être affiché et non pas pour être exécuté. La balise Markdown de début d’un bloc de code est le triple accent grâve éventuellement suivie d’une directive pour indiqué la syntaxe du code. matlab n’est pas une directive connue pour mettre en évidence la syntaxe du code, il faut utiliser à la place la directive octave (le clone open source de Matlab) pour obtenir le même effet.
Code Markdown
``` octave
disp("Bonjour")
for i=1:2
i+1
end
```
Résultat
disp("Bonjour")
for i=1:2
i+1
end