tp2 initiation matlab.pdf

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.

Upload: daha-ahmed

Post on 14-Apr-2016

5 views

Category:

Documents


0 download

TRANSCRIPT

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.