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

Gestion des entrées/sorties, déclaration des variables

Les variables sont créées automatiquement lors de leur déclaration. Toutes les variables sont de type double et toutes les variables sont des matrices (un scalaire est une matrice 1x1).

Création de variables, les approches classiques

Taper les lignes de code suivantes et visualiser les résultats. Pour afficher une variable, il suffit de taper son nom sans point virgule.

NB : le code sera tapé dans un fichier puis le fichier sera exécuté, la console ne servira qu'à visualiser le résultat.

Création directe

 a = 2; % matrice 1x1 contenant la valeur 2.0
 m0 = [1 2; 3 4];     % espace (ou virgule) -> valeur suivante
                     % point-virgule -> ligne suivante
 v1 = 1:10;           % [1 2 3 4 5 6 7 8 9 10]
 v2 = 1:2:10;         % de 1 à 10 par pas de 2 : [1 3 5 7 9]
 v3 = (1:10)';        % ' donne la transposée et nous créons donc un vecteur colonne

Les [] permettent de définir une matrice, l'opérateur : est une boucle implicite.

Création de matrices spéciales à l'aide de fonctions dédiées

Tester les fonctions ci-dessous.

 m1 = ones(10,2);  % matrice de 1, args = dimensions
 m2 = zeros(5,4);  % matrice de 0, args = dimensions
 m3 = eye(4);      % matrice identité carrée, arg = dimension
 m4 = rand(5,6);   % matrice de nombres aléatoires indépendants, args = dimensions
 m5 = randn(5,6);  % tirages selon une gaussienne(mu=0,var=1), args = dimensions

Chargement/sauvegarde de matrices de valeurs

Les fonctions save et load d'octave permettent de sauver et charger des matrices de données.

Saisir dans un fichier texte college.dat les deux colonnes de nombres suivantes (vous utiliserez TextEdit, nedit, gedit, emacs ...). Ces nombres correspondent à des notes (2 épreuves) d'élèves (15) sur lesquelles nous travaillerons par la suite.

Utiliser la commande notes = load("college.dat"); puis vérifier le contenu de la variable notes.

Tenter ensuite de sauvegarder la matrice notes dans le fichier college\_save.dat en utilisant la commande save (aide de octave: help save)

 14.5  8.5 
 15.5  8.5
 9     14.5
 9.5   15.5
 11    9.5 
 3.5   6
 11.5  11
 8.5   5.5
 3     2
 17    12
 6     13
 10    12.5
 10    4
 11.5  5.5
 13.5  8

Etat de la mémoire

 long = length(v1);      % acces à la longueur de v1
 dims = size(m0);        % renvoie un vecteur nlignes, ncolonnes : [2, 2]
 nlignes = size(m0,1); 
 ncolonnes = size(m0,2); 

La commande who -variables (ou who sur les dernières versions) permet de connaître les variables existantes dans la mémoire courante. Taper cette commande directement dans la console et vérifier que toutes les variables précédentes sont bien présentes.

NB: whos permet en plus de connaître la taille des matrices créées.

Exercice de synthèse

Nous souhaitons créer une matrice 10x3 dont la première colonne contient les indices 1 à 10 dans l'ordre. La seconde colonne contiendra des nombres aléatoires entre 0 et 1. La troisième colonne ne contiendra que des 0.

Vous ajouterez ensuite une ligne en haut de la matrice contenant les indices de colonne 1 à 3.

NB: vous pouvez créer des matrices dans des matrices, c'est-à-dire faire appel à des fonctions dans les [].

Exemple de résultat possible:

    1.00000    2.00000    3.00000
    1.00000    0.03479    0.00000
    2.00000    0.66074    0.00000
    3.00000    0.15187    0.00000
    4.00000    0.03640    0.00000
    5.00000    0.62497    0.00000
    6.00000    0.54774    0.00000
    7.00000    0.68919    0.00000
    8.00000    0.86146    0.00000
    9.00000    0.72030    0.00000
   10.00000    0.84590    0.00000