Académique Documents
Professionnel Documents
Culture Documents
Éléments du module
Matlab
CHERIF Walid
Année Universitaire: 2014/2015
crf.walid@gmail.com
Interface Matlab
Historique des
commandes
Commande help
Exemple :
pour avoir de la documentation sur la commande plot :
help plot
Help/Product Help
Expression :
formule permettant de calculer immédiatement un résultat
Instruction :
ensemble structuré d’expressions ou affectation
ex: a=3*3;
b=sin(pi*3);
c=a*b
Pour écrire plusieurs instructions à la fois, il est utile d’utiliser des fichiers
Scripts ou des fonctions.
Indexation
Size:
détermine les dimensions d’une matrice.
Accepte 2 arguments, le premier étant la matrice et le deuxième étant la dimension
que l’on cherche (1 pour le nombre de lignes et 2 pour le nombre de colonnes)
Pour effacer toutes les variables de l'espace de travail taper clear all
A = [1 2 4 ; 2 6 8 ; 3 5 4].
Addition / soustraction :
A = [1 2 3 ; 4 5 6] , B = [2 4 6 ; 7 8 -1]
A+B = [3 6 9 ; 11 13 5]
A-B = [-1 -2 -3 ; -3 -3 7]
Multiplication / division :
A = [1 2 3 ; 4 5 6] , B = [2 4 6 ; 7 8 -1]
A.*B = [2 8 18 ; 28 40 -6]
A./B = [0.5 0.5 0.5 ; 0.57 0.62 -6]
fonctions trigonométriques : cos, acos, sin, asin, tan, atan, cot, acot
fonctions logarithmiques : exp, log (log Népérien), log10 (log de base 10)
Exemples :
A = [1:10];
sin(A) = [0.84 0.91 0.14 -0.76 -0.96 -0.28 0.66 0.99 0.41 -0.54]
log(A) = [0 0.69 1.10 1.39 1.61 1.79 1.95 2.08 2.20 2.30]
sum(A) = 55 (sum(A) = 1+2+3+4+5+6+7+8+9+10)
cumsum(A) = [1 3 6 10 15 21 28 36 45 55] ( somme cumulée)
rand(1,10) = [0.95 0.23 0.61 0.49 0.89 0.76 0.46 0.02 0.82 0.44]
(vecteur à 1 ligne et 10 colonnes obtenu par tirage aléatoire avec une loi de probabilité
uniforme : chaque élément compris entre 0 et 1 a la même probabilité de sortir).
EXERCICE 1 :
EXERCICE 2 :
1) Générer un vecteur x à 1 ligne et 30 colonnes rempli de 3 en utilisant la fonction ones().
2) Calculer la somme cumulée de x (fonction cumsum()) et l'affecter à la variable y.
3) Prélever un échantillon sur 9 de y et placer ces échantillons dans un vecteur z.
EXERCICE 3 :
1) Générer un vecteur x à 1 colonne et 1000 lignes rempli de nombres aléatoires distribués
uniformément entre 0 et 1 en utilisant la fonction rand()
2) Calculer la moyenne et l'écart type du vecteur x en utilisant mean() et std()
3) Créer un générateur de 'lancer de dé' ie un générateur de nombre aléatoire entier
compris entre 1 et 6 avec une probabilité uniforme (avec rand() et ceil() par exemple)
EXERCICE 4 :
EXERCICE 5 :
Concaténation : c = [a b];
A = [1 2 4 5 6]
find(A==4) donne le résultat 3
Visualisation graphique
En abscisse,
la valeur représentée correspond au
numéro de l'échantillon.
Visualisation graphique
Exemple :
Plot (A,'-+') pour utiliser un marqueur de type '+' ajouté à une ligne continue
Visualisation graphique
A = [1 6 3 5 7 9 12];
B = [2 3 8 3 6 4 8];
hold on
Plot(A,'+-'), plot(B,'o-')
Visualisation graphique
A = [1 6 3 5 7 9 12];
B = [2 3 8 3 6 4 8];
subplot(2,1,1), plot(A,'+-')
subplot(2,1,2), plot(B,'o-')
Visualisation graphique
Visualisation graphique
X = [1 5 7 9 11 13 15] ;
A = [1 6 3 5 7 9 12] ;
plot(X, A,'+');
hold on
Y = [2 4 6 8 10 12 14] ;
B = [2 10 6 5 9 7 12] ;
plot(Y,B,'o');
xlabel('temps')
ylabel ('Valeurs')
title('Essai de graphique superposé')
grid on
legend('signal A', 'signal B') ;
Visualisation graphique
Visualisation graphique
1. Mode interactif :
dans la fenêtre associée à la figure : cliquer sur >fichier>enregistrer sous puis
rentrer le type de format de sortie de la figure:
Format graphique simple (bmp, jpg, tiff…)
Format matlab (.fig) qui permettra de retravailler la figure à posteriori
2. Mode commande :
rester dans la fenêtre d'éditeur de commande et taper saveas(gcf, 'nom_du_fichier',
'type_de_fichier_de_sortie').
Exercice 1
Que fait le programme Matlab suivant ? Pour vous en convaincre, choisissez des
valeurs initiales pour x et y et suivez leur évolution au fur et à mesure des calculs
effectuez.
x = input(’valeur de x ? ’); % lecture au clavier de la valeur de la variable x
y = input(’valeur de y ? ’);
x=x+y;
y=x-y;
x=x-y;
disp([x,y]) % écriture à l’écran des valeurs de x et y
Exercice 2
Ecrire dans la fenêtre de commandes les instructions Matlab qui étant donné un
temps t exprimé
en secondes, le convertissent en heures, minutes et secondes.
Exercice 3
Exercice 4
Supposons que vos économies soient abritées par une banque ayant la politique
d’intérêts suivante :
si vous disposez de moins de 5000e en moyenne sur votre compte dans l’année,
la banque vous versera en fin d’année un intérêt de 9%. Par contre, si vous
disposez de plus de ce montant, la banque vous
applique un taux d’intérêt à 12%.
On veut écrire des instructions Matlab qui vous permettent de savoir quel argent
vous allez gagner
grâce aux intérêts de votre compte.
1. Combien de variables sont nécessaires pour modéliser ce problème ?
2. Dans la fenêtre de commande trouvez une façon de stocker en mémoire la
somme d’argent que
vous avez laissé sur votre compte cette année.
3. Entrez les instructions permettant à Matlab de calculer le montant de votre
intérêt (cela doit fonctionner quelle que soit la somme précédemment indiquée).
4. Vérifiez en changeant la somme initiale que Matlab est bien capable de tenir
compte des différents cas.
Exercice 4
Exercice 5
Exercice 6
Visualisation d'un signal sinusoïdal de fréquence f = 100 Hz, échantillonné à 20 kHz
pendant 10 secondes
1 - Générer un vecteur t contenant les dates en secondes des échantillons d'un
signal de durée 10 sec et échantillonné à 20 kHz.
2 - Calculer les valeurs du signal sinusoïdal grâce à la formule : y = sin(2*pi*f*t).
3 - Afficher le signal y en fonction du temps en marquant d'une croix les valeurs des
échantillons.
4 - Placer sur le graphique un titre, des labels d'abscisses et d'ordonnée.
Exercice 7
Nous allons maintenant adapter votre code à tous les cas possibles. Pour cela,
nous allons avoir recours aux instructions conditionnelles.
Effectuez les ajustements nécessaires dans votre script pour qu’il distingue les cas
où il n’y a pas de solution, de ceux ou la solution est indéterminée, du cas où il
n’y a qu’une racine, du cas général où deux racines existent. Dans tous ces cas, le
programme doit avoir une sortie satisfaisante pour l’utilisateur 1.
Pour tester votre programme vous pourrez vous appuyer sur les polynômes
suivants :
2x²- 3
3x - 4
x²- x + 3
2x² - x - 1
sqrt(x) X^2
Display X = rand(5,3);
disp(‘ Note1 Note2 Note3 ')
disp(X)
nom = ‘Ahmed';
note = 10;
X = sprintf('%s a obtenu %d en moyenne.', nom, note);
disp(X)
Un programme matlab est une suite d'instructions enregistrées dans un fichier texte
ayant l'extention '.m'.
Lignes de programme!
commentaires sur ce que fait le programme!
Lignes de programme!
Exemple
% calc_moyenne
% programme calculant la moyenne d'un vecteur x
% Input :
% * x : vecteur dont on veut connaître la moyenne.
% Output:
% * moy: moyenne de x
% créé le 22/04
moy = mean(x);
Exemple
Lignes de programme!
L'appel de la fonction :
Lignes de programme
[var_out1, var_out2,…] = test (var_in1, var_in2,…)
If … else …end
rep = input(‘Choisir un nombre 0 ou 1?');
if rep == 0
disp('Vous avez tapé la réponse 0');
else
disp('vous avez tapé la réponse 1') ;
end
La boucle for…end
Exercice 1
Définir un programme qui demande à l’utilisateur de saisir som nom N, son prénom
P, sa date de naissance D, et affiche le message (« Bonjour N, dans L mois tu auras B
ans»)
1. Demande nom, prénom, année de naissance et affiche (« bonjour (prénom)
vous avez (l) ans »)
2.En tapant : NvUser(nouvel utilisateur), on demande la saisie des informations
Exercice 2
Function: GUI_Win.M
fonction principale
function GUI_Win
function ajouter(obj,event)
nCompt=nCompt+1;
set(handles(4),'string',num2str(nCompt));
Fin de la fonction ajouter
CHERIF Walid - Matlab
Interface graphique
Fonction retrancher
function retrancher(obj,event)
set(handles(4),'string',num2str(nCompt));
Fin de la fonction retrancher
Enoncé
A chaque résultat erroné on affiche : « nombre trop grand » ou « nombre trop petit »
Médiane : median
Ecart-type : std
Variance : var
Covariance : cov
Disttool
Randtool
dfittool
2. Trier un vecteur
4. Dessiner le vecteur