'';'' en fin de ligne : désactive la sortie standard ''ans'' : résultat de la dernière commande exécutée. Modifiée avec ou sans l'utilisation du '';'' en fin de ligne. Les variables sont sensibles à la casse. nom des variables valides ''[a-zA-Z][a-zA-Z0-9_]*'' * Workspace ''load/save filename parameters'' : charge / enregistre l'environnement de travail dans le fichier ''filename.mat''. Si un paramètre est défini, cela ne va charger / enregistrer que les variables spécifiées. ''clear'' : vide l'espace de travail (perte des variables). ''clear all'' : nettoie intégralement le workspace. https://fr.mathworks.com/help/matlab/ref/clear.html ''clc'' : vide la console sans vider l'espace de travail. ''format long'' (15 décimales) / ''format short'' (4 décimales) : modifier le nombre de décimales. ''whos'' : toutes les variables de l'environnement ''properties(id)'' et ''methods(id)'' : introspection de l'objet. ''class(defaultVal)'' : namespace.classname * Types scalar : tableau 1*1 : ''x=4'' row vector : 1*x : ''y = [7 9]'' column vector : x*1 : ''z = [7;9]'' matrix : x*x : ''c=[5 6 7;8 9 10]'' cell : ''{1, "coucou"}'' vecteur ligne de 1 à 10 inclus : ''1:10'' ou ''[1:10]'' Boucle : avec un pas de 2 : ''1:2:10'' * Matrix Pour accéder à une valeur d'un tableau, il faut utiliser les parenthèses: ''data(6,3)'' ''data(end, end)'' dernier élément de lignes / colonnes ''data(8)'' va renvoyer la 8ème valeur en parcourant par colonne. ''data(:,2)'' : renvoie la 2ème colonne. ''data(:,2:3)'' : renvoie la 2ème et 3ème colonne. ''data(:,[1 3])'' : renvoie la 1ère et 3ème colonne. Si on ajoute une donnée en dehors de la taille de la matrice, la taille est automatiquement ajustée. Attention si on a une matrice d'objet. Si l'objet n'a pas de constructeur vide, il ne faut pas avoir de valeur vide. Sinon l'erreur ''Not enough input arguments.'' va apparaître. Cela fait une copie : v2 = data(:,end) v2(1) = 0.5 data n'a pas changé. modifier un tableau avec une seule valeur : va + 1 l'opérateur * est une multiplication matricielle. Si on veut seulement multiplier par une seule valeur pour par des valeurs, élément par élément : .* x = [1 2;3 4;5 6; 7 8].*[1;2;3;4] 1 2 6 8 15 18 28 32 Extraire les valeurs d'un résultat multiple: [dr, dc] = size(data) [vMax, ivMax] = max(v) : renvoie la valeur max et l'indice de la valeur max par colonne. Pour ignorer une des valeurs : utiliser le ~ : [~, ivMax] = max(v) Il est possible de nommer les lignes et colonnes d'une matrix: sample = rand(3,3); rowNames = {'a','b','c'}; colNames = {'x','y','z'}; sTable = array2table(sample,'RowNames',rowNames,'VariableNames',colNames) On y accède avec un . : sTable.a Condition: if condition1 code elseif condition2 code end Boucle : for c = 1:3 XX end Inverse: for c = 3:-1:1 OOP Les properties sont en PascalCase Dans un objet, on ne peut pas ajouter de properties. Dans une structure (comme un objet mais sans sa déclaration via classdef), on peut créer les properties à la volée. % En héritant de handle, l'objet n'est plus passé en copie mais toujours en référence. classdef idstick < handle enumeration Open, Closed end properties (SetAccess = private) PropertyName (size) type {check1, check2, ...} = defaultvalue % https://fr.mathworks.com/help/matlab/data-types.html % https://fr.mathworks.com/help/matlab/matlab_oop/property-validator-functions.html % Si le type est spécifié, les check vont être appliqués après que la valeur est été castée (si possible). % Donc avec ''string {mustBeText}'', mettre 42 est "valide" car 42 car être casté en string puis vérifié que c'est bien un text. % Donc avec ''{mustBeText}'' sans type, mettre 42 est invalide car 42 n'est pas un text. end properties (SetAccess = immutable) SerialNumber (1,1) uint32 end methods % Constructeur. Pas besoin de obj au debut. function obj = idstick(snum, other) arguments snum string {mustBeTextScalar} other % All must be written end obj.SerialNumber = snum; end function [x,y] = signal(obj,other) if ok if (id.Status == "Ready") || (id.Status == "Done") disp("Beep beep") else disp("Beep") end else disp("Buzz") end end end end classdef AccountState end. Attention. Tout est en copie sauf si l'objet hérite de ''handle''. Modifier obj depuis une méthode ne modifiera pas la variable obj initiale. Syntaxe d'une lambda : func = @() c : ici, une méthode lambda sans argument renvoit la variable c. Matlab pointer https://fr.mathworks.com/help/matlab/matlab_external/passing-arguments-to-shared-library-functions.html