1
Ecole Polytechnique Militaire 2015 TP Traitement de signal I. P. Elmoukhtar TPN°2: Initiation au MATLAB (Scripts et fonctions) Question 1 : Créez un fichier m-file (menu principal, File New M-file) nommé test1.m contenant les lignes suivantes : %Mon premier m-file A=ones(4) v=[1 2 3 4]’ w=A*v Quel est le résultat de l’instruction >> test ? Question 2 : Créez un fichier m-file (menu principal, File New M-file) nommé test2.m contenant les lignes suivantes : function m= test2 (n) A=rand(n); imagesc(A); axis equal off; m=mean(mean(A)); Quel est le résultat de l’instruction >> test2(5) ? Question 3 : 1- Définissez deux nombres quelconques a et b. Écrivez un programme indiquant quel est le plus grand de ces deux nombres (la fonction disp permet d’afficher un texte). 2- Même exercice en prenant également en compte le cas de l’égalité entre les deux nombres (utilisez elseif). 3- Avec une boucle for, affichez les entiers de 0 à 10. 4- Avec une boucle for, affichez les nombres pairs de 100 à 90. 5- Créez la matrice de Hilbert de taille N (Hi,j = 1/(i + j 1) avec i, j {1,N}). Il faut utiliser deux boucles for imbriquées. Il est préférable d’initialiser la matrice H au début : H = zeros(N) car cela évite à Matlab de redimensionner la matrice pendant l’exécution du programme et permet donc de gagner du temps. 6- Créez un vecteur x de taille 10 contenant des entiers aléatoires entre 0 et 10 (fonctions rand et round) puis calculez la somme de ses éléments deux à deux. 7- Écrivez une fonction Matlab qui calcule la norme euclidienne d’un vecteur x = (x1, x2). 8- Vérifier que le programme y = x.^2; est bien plus rapide que le suivant : y = zeros(length(x),1); for i = 1:length(x) y(i) = x(i).^2; end; Utilisez les fonctions tic et toc pour mesurer le temps de calcul de chacun.

TP2 Initiation MATLAB.pdf

Embed Size (px)

Citation preview

Ecole Polytechnique Militaire 2015

TP Traitement de signal I. P. Elmoukhtar

TPN°2: Initiation au MATLAB (Scripts et fonctions)

Question 1 : Créez un fichier m-file (menu principal, File → New → M-file) nommé test1.m contenant les lignes suivantes : %Mon premier m-file A=ones(4) v=[1 2 3 4]’ w=A*v Quel est le résultat de l’instruction >> test ? Question 2 : Créez un fichier m-file (menu principal, File → New → M-file) nommé test2.m contenant les lignes suivantes : function m= test2 (n) A=rand(n); imagesc(A); axis equal off; m=mean(mean(A)); Quel est le résultat de l’instruction >> test2(5) ?

Question 3 :

1- Définissez deux nombres quelconques a et b. Écrivez un programme indiquant quel est le plus grand de ces deux nombres (la fonction disp permet d’afficher un texte).

2- Même exercice en prenant également en compte le cas de l’égalité entre les deux nombres (utilisez elseif).

3- Avec une boucle for, affichez les entiers de 0 à 10. 4- Avec une boucle for, affichez les nombres pairs de 100 à 90.

5- Créez la matrice de Hilbert de taille N (Hi,j = 1/(i + j − 1) avec i, j {1,N}). Il faut utiliser deux boucles for imbriquées. Il est préférable d’initialiser la matrice H au début : H = zeros(N) car cela évite à Matlab de redimensionner la matrice pendant l’exécution du programme et permet donc de gagner du temps.

6- Créez un vecteur x de taille 10 contenant des entiers aléatoires entre 0 et 10 (fonctions rand et round) puis calculez la somme de ses éléments deux à deux.

7- Écrivez une fonction Matlab qui calcule la norme euclidienne d’un vecteur x = (x1, x2).

8- Vérifier que le programme y = x.^2; est bien plus rapide que le suivant : y = zeros(length(x),1); for i = 1:length(x) y(i) = x(i).^2; end;

Utilisez les fonctions tic et toc pour mesurer le temps de calcul de chacun.