Teaching - RFIDEC


RFIDEC

Examen de milieu de semestre:

Voir la page de C. Gonzales:

http://webia.lip6.fr/~gonzales/teaching/rfidec/index.php

Examen de fin de semestre:

  • Droit aux notes de cours et aux slides
  • Le programme commence aux cours de P. Gallinari.
  • Les slides sont sur la page de P. Gallinari ainsi que l'exam corrigé de l'an dernier.

http://www-connex.lip6.fr/~gallinar/Enseignement/Enseignement.html

Retour vers le tutoriel complet

Fonctions de base

Syntaxe

Opérations sur les matrices

ATTENTION: TOUS LES INDICES DE MATRICES DEMARRENT A 1
Sur une matrice, vous disposez des opérateurs suivants:

 % soient les variables définies dans la question précédente
 v1(1) = 3;    % affectation
 a = m0(2,2);  % accès en lecture
 v1 = v1+ 3;   % ou v1 += 3	% matrice + scalaire
               % changement sur les toutes les valeurs de v1
               % NB: le - fonctionne pareil
 m1tr = m1';               % transposée
 m1 = ones(10,1)*[1 2 3]; % Attention, produit matriciel
 m2 = ones(10,3)*2;        % multiplication par un scalaire
 m3 = m1 .* m2;            % multiplication terme à terme
                          % NB: il existe également ./ (division) et .^ (puissance)

Modification de valeur et sous-matrices

 v1(1:5) = v1(1:5)+3;   % changement sur les 5 premières valeurs de v1
 v2(end-1:end) += 20;   % changement des 2 dernières valeurs de v2
 m1(1:3,1:2) = 1000;    % affectation sur un bloc
 m3(2,:)                % retourne la 2ème ligne, toutes les colonnes
 m3(:,3)                % retourne la 3ème colonne (toutes les lignes)
 m4([1 3 5], 1)         % retourne les 3 cases (1,1), (3,1) et (5,1)

Opérations de base proposées par Octave (sur scalaires et matrices)

 min(a,b)  % renvoie la valeur min (terme à terme pour des matrices a et b)
 max(a,b)
 ceil(a)   % arrondi au dessus
 floor(a)  % arrondi au dessous
 sort(a)   % renvoie un tableau trié (chaque colonne est triée)
 sort(a,2) % renvoie un tableau trié (chaque ligne est triée)
 mean(a)   % moyenne de chaque colonne de a
 mean(a,2) % moyenne de chaque ligne de a
 sum(a)    % somme de chaque colonne de a
 sum(a,2)  % somme de chaque ligne de a
 std(a)    % écart-type de chaque colonne de a
 mod(a,b)   % renvoie a modulo b (reste de la division entière)

Application 1: mean/std

Calculer la moyenne et l'écart-type des deux épreuves (cf données de la première partie du tutoriel).

Application 2: génération aléatoire

Nous souhaitons générer aléatoirement les notes de la question précédente sachant que:

  • Le nombre d'élèves est n=15
  • Les notes sont tirées selon une loi gaussienne d'écart-type 4. Utiliser la commande randn pour générer les tirages puis multiplier par l'écart-type.
  • La première épreuve à une moyenne de 10, la seconde, une moyenne de 8 (on veut donc décaler la première colonne de 10 et la seconde de 8)
  • On veut être sûr que les notes sont supérieures ou égales à 0 (utiliser max)
  • On veut être sûr que les notes sont inférieures ou égales à 20 (utiliser min)
  • On veut des notes entières (utiliser round)

Boucles et conditions

La syntaxe est la suivante:

 for i=1:10     % pour i allant de 1 à 10
  for j=1:10   % pour j allant de 1 à 10
    maMatrice(i,j) = i+j;  
  endfor
 endfor

NB: le pas de la boucle peut être réglé comme suit: for i=1:pas:100. Il existe des boucles while et do-until si besoin.

La syntaxe du IF est la suivante:

 if i<10
      i = i + 10;
 else
      ...
 endif

Application des boucles et conditionnelles

Générer une matrice M 10x10 avec les caractéristiques suivantes (i désigne les lignes et j les colonnes):

  • si (i+j) pair alors M(i,j) pair (tirage aléatoire)
  • si (i+j) impair alors M(i,j) = i+j