Aide Mémoire Matlab 1. Informations générales 1.1 Aide L’essentiel est de pouvo
Aide Mémoire Matlab 1. Informations générales 1.1 Aide L’essentiel est de pouvoir se débrouiller seul, il existe plusieurs types d’aide : help suivi du nom d’une fonction pour avoir plus de détails. helpwin ouvre une fenêtre dans laquelle les fonctions sont rangées par thème. helpdesk aide au format html parfois plus complète que les premières avec exemples et types d’algorithmes utilisés. lookfor suivi d’un mot clé liste toutes les fonctions ayant un rapport avec ce mot clé. Il existe d’autres supports d’aide : Getting Started with Matlab, Using Matlab : deux livres livrés avec Matlab. www.mathworks.com :site de l’entreprise qui développe Matlab présentant des exemples de programmation. 1.2 Constantes prédéfinies i, j : nombre complexe i ou j (i²=j²=-1), pi : π, eps : précision relative en virgule flottante, realmin : plus petit réel strictement positif, realmax : plus grand réel codable, Inf : Infinity obtenu par exemple par 1/0, NaN : Not a Number obtenu par les formes indéterminées du type 0/0, Inf-Inf… Attention : Toutes ces constantes ne sont pas protégées en écriture. 1.3 Manipulation de fichiers – Espace mémoire cd : changement de répertoire courant, pwd permet de connaître le répertoire courant. ls ou dir listent les fichiers du répertoire courant. delete permet d’effacer un fichier, mkdir : création d’un nouveau répertoire, who, whos liste les variables en mémoire, clear suivi du nom d’une variable, permet de l’effacer et ainsi de libérer de la mémoire. Si le nom d’une variable est omis toutes les variables sont effacées. 1.4 Format d’affichage Les différents types d’affichages des nombres sont obtenus par la commande help format. 1.5 Sauvegarde – Lecture de données save et load permettent d’enregistrer et de lire des données au format Matlab ou ascii ce qui permet le transfert de données avec Excel. 1.6 Opérateurs relationnels et logiques > (>=) : supérieur (ou égal), < (<=) : inférieur (ou égal), ==, ~= : égal, différent, &, |,~ : et logique, ou logique, non logique, isinf, isnan : vrai pour Inf, vrai pour NaN, isfinite : faux pour Inf et NaN, isempty : vrai pour les matrices vides ( [ ] ), isprime : vrai pour les entiers premiers, isequal(A,B) : vrai si les deux matrices sont équales, any(V>0) : vrai si au moins un élément du vecteur V est positif, all(V>0) : vrai si tous les éléments du vecteur V sont positifs, logical : convertit un tableau numérique en tableau logique. 2. Les Matrices 2.1 Définition d’une matrice – d’un vecteur A=[3 5 6; 1 2 8; 7 4 6] : définition éléments par éléments, zeros(n,m) : matrice nulle de taille n×m, eye(n) : matrice identité de taille n, ones(n,m) : matrice de 1 de taille n×m, [A, B ; C, D] : matrice définie par blocs. repmat(A,n,m) : matrice possédant n×m blocs A. diag(V,k) : matrice carrée dont la kième diagonale est égale au vecteur V, X=Xmin:pas:Xmax : vecteur ligne à pas constant. 2.2 Les indices Indexation classique : A(i,j) : élément de ligne i et de colonne j, A(k): kième élément de A en les comptant par colonne, sub2ind, ind2sub: passage de l’indexation classique à l’indexation par colonnes et réciproquement, A(:,j) : jième colonne de A, A(:,[j1,j2]) : colonnes j1 et j2 de A, A(i,:) : iième ligne de A, A(i*ones(1,p),:) : p fois la iième ligne de A, A(i1:i2,j1:j2) : bloc (aij) avec i1≤i≤i2 et j1≤j≤j2, V(end-3 :end) : 4 derniers éléments du vecteur V. Indexation logique : Cet outil est très puissant, il permet de désigner des éléments d’un tableau à partir d’un autre tableau logique de même taille : si A et B sont deux matrices de même tailles, A(B>0) désigne les éléments aij de A tels que bij soit positif. A(B>0)=0 remplace ces éléments par zéro, V(~isfinite(V))=[] supprime les éléments non finis du vecteur V. 2.3 Opérations sur les lignes et les colonnes A(i,:)=[ ] : suppression de la iième ligne de A, A=[A,C] : ajout de la colonne C à droite de A, size(A) : taille de A sous forme d’un vecteur [n m], length(V) : longueur d’un vecteur ligne ou colonne, A(:) : transformation de A en un vecteur obtenu en juxtaposant ses colonnes, reshape(A,k,l) : transforme une matrice de taille n×m en matrice de taille k×l, triu, tril : partie triangulaire supérieure, inférieure. 2.4 Opérations sur les matrices A’ : matrice adjointe, A.’ : matrice transposée, * : multiplication matricielle, ^ : puissance matricielle, expm : exponentielle de matrice, x=A\y : résolution du système linéaire Ax=y, NE PAS utiliser l’inverse! 2.5 Opérations sur les tableaux Les matrices peuvent aussi être considérées comme un tableau de nombre et il existe une liste d’opérations terme à terme : .* : multiplication terme à terme, ./ : division terme à terme, .^ : puissance terme à terme, exp : exponentielle terme à terme. 2.6 Matrices creuses Il existe une méthode spécifique pour le stockage des matrices contenant beaucoup d’éléments nuls (dites creuses), qui permet de gagner beaucoup en temps de calcul et place mémoire ; voir help matlab\sparfun. 3. Chaîne de caractères Une chaîne de caractères se forme en insérant du texte entre deux quotes : texte =’Ceci est du texte’. [texte,’sous Matlab’] : concaténation, int2str(i) : conversion d’un entier i en texte, num2str(x,n) : conversion d’un réel x en texte avec n chiffres, disp(texte) : affiche la chaîne de caractères texte dans l’espace de travail, error(texte) : affiche la chaîne texte et stoppe l’exécution de la fonction en cours. 4. Graphiques 4.1 Courbes Exemple : x=-1:0.05:1; y1=exp(x); y2=exp(-x); plot(x,y1,’+-r’,x,y2,’:b’) figure : ouverture d’une nouvelle fenêtre graphique, clf : efface la figure courante, close all : fermeture de toute les fenêtres graphiques, hold on, hold off : ajout de courbes sur un graphique existant, axis : contrôle des axes, xlabel,ylabel,title,legend,text : annotations, subplot : affichage de plusieurs graphiques dans une même fenêtre, plot3 : courbe en 3D, polar : courbe en polaire, help matlab\graph2d : liste des fonctions sur les graphes 2D. 4.2 Surfaces Exemple : [X,Y]=meshgrid(-8:0.5:8); Z=X.^2+Y.^2; mesh(X,Y,-Z) mesh : maillage, surf : surface colorée, surfc : idem avec contour dans le plan z=0, colorbar : échelle des couleurs, colormap : palette de couleurs, shading interp : interpolation (surface plus lisse), help matlab\graph3d : liste des fonctions sur les graphes 3D. Il existe aussi de nombreux autres types de graphiques voir help matlab\specgraph. 5. Fonctions Matlab L’un des avantages de Matlab est que les principales fonctions mathématiques et d’analyse numérique sont déjà programmées, il est donc impossible d’en donner une liste exhaustive ici. help matlab/elfun : liste des fonctions usuelles, help matlab/elmat : liste des fonctions matricielles élémentaires, help matlab/matfun : liste des fonctions d’analyse linéaire, help matlab/datafun : liste des fonctions d’analyse de données et de transformée de Fourier, help matlab/polyfun : liste des fonctions polynomiales et d’interpolation, help matlab/funfun : liste des fonctions de recherche de zéros et de minimum, de résolution d’équations différentielles et d’intégration… 6. Programmation edit : lance l’éditeur de texte Matlab. [Ctrl]+C : pour stopper l’exécution d’un programme, Attention : Pour l’exécution, le répertoire courant doit être celui où sont enregistrés les fichiers Matlab (cf. cd). 6.1 Exemple Fichier cartesien.m function [x,y]=cartesien(r,theta); % Passage en coordonnées cartésiennes x=r.*cos(theta); y=r.*sin(theta); function est un mot clé obligatoire, x et y sont les variables de sorties, cartesien est le nom de la fonction, il faut alors nommer le fichier cartesien.m, r et theta sont la variables d’entrées, % est le symbole pour une ligne de commentaires, ; permet d’éviter l’affichage des résultats intermédiaires. Attention : L’un des avantages de Matlab est que la plupart de ses fonctions peuvent opérer directement sur les tableaux, il est fortement conseillé –quand c’est possible- de faire de même pour ses propres fonctions (d’où l’emploi du .* plutôt que du *). L’appel de cette fonction est alors : >>[x0,y0]=cartesien(2,pi/4) 6.2 Boucles et tests if, elseif, else : instructions conditionnelles, switch : idem utilisé dans les situations où il y a beaucoup de cas différents, for : boucle répétée un nombre connu de fois, while : boucle répétée tant qu’une condition est vraie, end : fin d’une boucle ou d’une instruction conditionnelle, break : sortie prématurée d’une boucle. Attention : Il est bien plus rapide d’utiliser une écriture matricielle ou vectorielle plutôt que des boucles. Quand les boucles sont inévitables, penser à allouer dès le début de l’espace mémoire aux variables matricielles pour éviter la ré-allocation. 6.3 Fonctions utiles tic, toc, cputime : mesure du temps machine utilisé, pause : pause dans l’exécution d’une fonction, input : demande à l’utilisateur de rentrer la valeur d’une variable, feval : évalue une fonction dont le nom est une variable d’entrée, global : définition de variable globale, nargin : nombre de variables d’entrées lors de l’appel d’une fonction, profile : permet une étude fine de l’utilisation du temps CPU et donc l’amélioration de ses fonctions, flops : compte le nombre d’opérations élémentaires effectuées, … : pour couper les lignes trop longues. PH – Ecole des Mines de Nancy uploads/Litterature/ aide-memoire-matlab.pdf
Documents similaires










-
31
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 03, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.1699MB