Traitement des données avec Matlab. Une introduction



Documents pareils
Introduction à MATLAB R

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Calcul Formel et Numérique, Partie I

Calcul Formel et Numérique, Partie I

Aide - mémoire gnuplot 4.0

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Séance 0 : Linux + Octave : le compromis idéal

Python - introduction à la programmation et calcul scientifique

TP 1 Introduction à Matlab Février 2009

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

Cours 7 : Utilisation de modules sous python

Le langage C. Séance n 4

3.2. Matlab/Simulink Généralités

à l édition de textes

TP 0 : INTRODUCTION À MATLAB

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Bases de programmation. Cours 5. Structurer les données

Notes introductives à Matlab

TP 1. Prise en main du langage Python

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Logiciel. Table de matières I Environnement requis...2

ESPACE COLLABORATIF SHAREPOINT

COURS DE MS EXCEL 2010

Conventions d écriture et outils de mise au point

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

COMPTABILITE SAGE LIGNE 30

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

BASE. Vous avez alors accès à un ensemble de fonctionnalités explicitées ci-dessous :

Algorithmique et Programmation, IMA

Présentation du langage et premières fonctions

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Business Intelligence

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

L informatique en BCPST

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

L espace de travail de Photoshop

Premiers pas avec Mathematica

Maple: premiers calculs et premières applications

Langage Java. Classe de première SI

Débuter avec Excel. Excel

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

TP1 - Prise en main de l environnement Unix.

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

INF 321 : mémento de la syntaxe de Java

I. Introduction aux fonctions : les fonctions standards

Le cas «BOURSE» annexe

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

Introduction : présentation de la Business Intelligence

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

Correction de l examen de la première session

Le cas «BOURSE» annexe

Créer et partager des fichiers

Cours d initiation à la programmation en C++ Johann Cuenin

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX


1 Introduction - Qu est-ce que le logiciel R?

1. Structure d'un programme FORTRAN 95

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

Initiation à la programmation OEF pour Wims (exercices).

Note de cours. Introduction à Excel 2007

MODE D EMPLOI DU MODULE D E-COMMERCE

FEN FICHE EMPLOIS NUISANCES

MetaTrader pour IPhone. Guide d utilisation

TD d économétrie appliquée : Introduction à STATA

Les chaînes de caractères

IMPORTATION, CRÉATION, MANIPULATION, EXPORTATION DE DONNÉES STATISTIQUES

Initiation à la programmation en Python

Introduction : L accès à Estra et à votre propre espace Connexion Votre espace personnel... 5

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Microsoft Excel Présentation du tableur Excel

EXCEL TUTORIEL 2012/2013

ALGORITHMIQUE ET PROGRAMMATION En C

Excel 2007 Niveau 3 Page 1

Installation / Sauvegarde Restauration / Mise à jour

Initiation à LabView : Les exemples d applications :

Tenrox. Guide d intégration Tenrox-Salesforce. Janvier Tenrox. Tous droits réservés.

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Formation. Module WEB 4.1. Support de cours

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Introduction à la présentation graphique avec xmgrace

Groupe Eyrolles, 2003, ISBN : X

CAPTURE DES PROFESSIONNELS

Nathalie Barbary SANSTABOO. Excel expert. Fonctions, simulations, Groupe Eyrolles, 2011, ISBN :

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Transmission d informations sur le réseau électrique

Gestion de références bibliographiques

Ouvrir le compte UQÀM

BIRT (Business Intelligence and Reporting Tools)

26 Centre de Sécurité et de

Une ergonomie intuitive

SAP BusinessObjects Web Intelligence (WebI) BI 4

Organiser le disque dur Dossiers Fichiers

Les concepts de base, l organisation des données

Modes Opératoires WinTrans Mai 13 ~ 1 ~

Système de Gestion Informatisée des. Exploitations Agricoles Irriguées avec Contrôle de l Eau

Services bancaires par Internet aux entreprises. Guide pratique pour : Transfert de fichiers Version

SOMMAIRE. 1. Préambule Le calendrier Trajectoire d un objet lancé Régression linéaire...9

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Transcription:

Traitement des données avec Matlab Une introduction

Matlab: «Matrixlaboratory» Un langage de programmation & un environnement de développement pour le calcul numérique et la visualisation Manipulation de matrices Tracés de courbes Mise en œuvre d algorithme Création d applications Facile à apprendre, simple à utiliser Plus d 1 million d utilisateurs (industrie, recherche académique ; ingénierie, sciences, économie ) «Equivalents» gratuits : GNU Octave, Scilab, SciPy % Cleve Moler, concepteur du langage Matlab (fin 70 s) en Fortran

Le concept Matlab: les toolboxs Une bibliothèque de fonctions intégrées Une fonction : un fichier texte contenant une série d instructions retourne un résultat en fonction des paramètres d entrée nom souvent très intuitif Exemples : mean: la moyenne d un tableau de données abs: la valeur absolue plot: trace une courbe

Le concept Matlab: les toolboxs Une bibliothèque de fonctions intégrées Des centaines de commandes prédéfinies pour effectuer des calculs plus ou moins courants et spécifiques, à partir des données : Mathématique élémentaire, calculs matriciels, résolution d équations linéaires & non-linéaires Statistique descriptive Interpolation 1-D Traitement du signal : convolution, transformée de Fourier, filtres Graphiques : 2-D, 3-D, histogrammes, barres d erreurs Lecture & écriture de fichiers de données

Le concept Matlab: les toolboxs Des toolboxs supplémentaires spécialisées (payantes), fonctionnalités avancées Signal Processing Image Processing Statistics Wavelet Des toolboxsdéveloppées dans des domaines spécifiques par le monde académique, souvent libres d accès SPM8 : Traitement et analyse des données d IRM fonctionnelle EEGLab: données EEG FieldTrip: données MEG Tout une batterie de fonctions proposées par la communauté des utilisateurs : MathWorks File Exchange

Objectifs Plan Manipuler les données Effectuer des calculs de base Visualiser les données La prise en main Les matrices et les opérations Fonctions & scripts Exemples avec les données??

Prise en main L interface

Prise en main L interface L invite de commandes : exécution de calculs & lancement de programmes

Prise en main L interface Des volets supplémentaires éventuels (historique des commandes, liste des variables, aperçu du dossier courant)

Prise en main L interface L aide

Prise en main L interface Le répertoire de travail (user path) Chemin par défaut pour le chargement et la sauvegarde des variables et des figures Scripts du dossier directement exécutables via l invite de commande

Prise en main L interface Set path: liste des dossiers de fonctions Définition des chemins d accès aux différentes toolboxs Rend possible l exécution des scripts depuis l invite de commande

Prise en main L invite de commande en pratique

Prise en main Les calculs élémentaires En mode «calculatrice» : on écrit le calcul désiré ( 2 + 5) >> 3^2*(2+5)/(5-2) 3 2 5 2 Symbole de l invite de commande Opérateurs courants : ^ : exponentiation * : multiplication / : division puis on valide en appuyant sur «Entrée»

Prise en main Les calculs élémentaires En mode «calculatrice» : on écrit le calcul désiré puis «Entrée» >> 3^2*(2+5)/(5-2) Entrée ans = Résultat assigné à la variable ans (answer) 21

Prise en main Les calculs élémentaires En mode «calculatrice» : on écrit le calcul désiré puis «Entrée» >> 3^2*(2+5)/(5-2) ans = Résultat assigné à la variable ans (answer) 21 >> ans/2 ans = 10.5000 Valeur décimale : «.»

Prise en main Les variables Affecter une valeur à une variable >> a = 35.6 Nom de ma variable Doit commencer par une lettre Peut contenir des chiffres (ex.: temp1) Distinction entre les minuscules et les majuscules (Temp1 temp1) Caractères autres que les lettres interdits hormis :_ (ex.: temp_1)

Prise en main Les variables Affecter une valeur à une variable >> a = 35.6 Entrée a = 35.6000 Pas nécessaire de déclarer le type, ni d initialiser

Prise en main Les variables Affecter une valeur à une variable >> a = 35.6 a = 35.6000 >> b = 273.15; >> Pas d affichage

Prise en main Les variables Affecter une valeur à une variable >> a a = >> b 35.6000 aet bsont conservées en mémoire = dans le Workspace b = 273.15

Prise en main Les variables Lister les variables créées dans le workspace >> whos Name Size Bytes Class Attributes a 1x1 8 double b 1x1 8 double

Prise en main Les variables Affecter une valeur à une variable >> tk = a + b tk = Créer une nouvelle variable à partir des variables déjà définies 308.7500 >> a = 32; Définir une nouvelle valeur pour a

Prise en main Les variables Affecter une valeur à une variable >> tk = a + b tk = 305.1500 Pour afficher à nouveau l équation écrite précédemment, utiliser la flèche directionnelle du clavier Nouvelle valeur de tk

Prise en main Les variables La notation en puissance de 10 2,16 10 6 >> pot = 2.16*10^(-6) pot = 2.1600e-06 Notation équivalente >> pot = 2.16e-6 pot = 2.1600e-06

Prise en main Les variables Les variables du workspace sont effacées à la fermeture de Matlab Pour les sauvegarder : >> save myvar a b tk Fichier MAT créé dans le dossier courant Nom du fichier Variables à stocker Pour les récupérer lors d une nouvelle session ou après suppression : >> load myvar Charger les variables dans le workspace

Prise en main Les variables Pour effacer certaines variables : >> clear a b tk Pour effacer tout le workspace: >> clear all

Prise en main Des constantes prédéfinies >> pi ans = 3.1416 >> i ans = 0.0000 + 1.0000i >> 0/0 ans = NaN Pour afficher davantage de décimales : >> format long >> pi ans = 3.141592653589793 L unité imaginaire pour définir les nombres complexes (i ou j) >> i^2 ans = -1 Not-A-Number: résultat numérique d une opération non-définie

Prise en main Des fonctions prédéfinies >> cos(2*pi) ans = 1 >> sqrt(25) ans = 5 Les fonctions trigonométriques : cos, sin, tan, Inverses : asin, acos, Hyperboliques : sinh, acosh Des fonctions mathématiques : sqrt: racine carrée log, log10, exp, abs, sign >> round(pi*2) ans = 6 Des fonctions d arrondis : round: entier le plus proche floor, ceil, fix

Prise en main Des fonctions prédéfinies >> figure Des fonctions pour la visualisation >> plot(2.56,3.18,'rx','markersize',12) Valeur(s) en abscisse Valeur associées en ordonnée Options de mise en forme hist (histogramme),plot3 (tracé 3D), surf (surface),image (images jpeg ) >> sphere(16) des milliers de fonctions prédéfinies

Prise en main La fonction help >> help ceil ceil Round towards plus infinity. ceil(x) rounds the elements of X to the nearest integers towards infinity. >> doc See also floor, round, fix. Utilité, arguments d'entrées, options, résultats Reference page in Help browser doc ceil Recherche de fonctionnalités par mot-clefs

Les matrices L élément de base en Matlab (MATrix LABoratory) Presque tout est matrice (tableau de valeurs)

Les matrices L élément de base en Matlab (MATrix LABoratory) Presque tout est matrice (tableau de valeurs) Il est capital de savoir les manipuler!

Les matrices L élément de base en Matlab (MATrix LABoratory) Presque tout est matrice (tableau de valeurs) n colonnes m lignes a(1,1) a(1,2). a(1,n) a(2,1) a(2,2). a(2,n) a(3,1) a(3,2). a(3,n) a(m,1) a(m,2). a(m,n) Matrice a de dimension m x n Un élément est repéré par le couple d indices (i,j) : (numéro de la ligne, numéro de la colonne)

Les matrices L élément de base en Matlab (MATrix LABoratory) Un nombre : matrice de dimension 1 x 1 a(1,1) Un vecteur en ligne : 1 x n n colonnes a(1,1) a(1,2). a(1,n) Un vecteur en colonne : m x 1 m lignes a(1,1) a(2,1) a(m,1)

Les matrices L élément de base en Matlab (MATrix LABoratory) Une matrice multidimentionnelle(3d) : m x n x p n colonnes a(1,1,p) a(1,2,p). a(1,n,p) a(2,1,p) a(2,2,p). a(2,n,p) a(m,1,p) a(m,2,p). a(m,n,p) m lignes a(1,1,2) a(1,2,2). a(1,n,2) a(2,1,2) a(2,2,2). a(2,n,2) a(m,1,2) a(m,2,2). a(m,n,2) a(1,1,1) a(1,2,1). a(1,n,1) a(2,1,1) a(2,2,1). a(2,n,1) a(m,1,1) a(m,2,1). a(m,n,1)

Les matrices Quelques exemples concrets Un nombre (scalaire) : matrice de dimension 1 x 1 1,56 6 10 Un vecteur en ligne : 1 x 4 ( 29 5 336 7) Un vecteur en colonne : 2 x 1 2,567 1,189 Une matrice multidimentionnelle: 2 x 3 x 3 3 12 1 2 4 5 19 0 2 5 8 24 3 3 2 0 36 2

Les matrices >> a = 1.56e6; >> b = [29 5 336 7] b = L affectation 29 5 336 7 >> c = [2.567 ; 1.189] c = 2.5670 1.1890 Un seul nombre 1,56 6 10 Des crochets pour définir la matrice Les espaces séparent les éléments du vecteur ligne. Ou les virgules : >> b = [29,5,336,7]; ( 29 5 336 7) Les ; séparent les éléments du vecteur colonne 2,567 1,189

Les matrices L affectation >> d = [3 2 0 ; -4 5 19] d = 3 2 0-4 5 19 >> size(d) ans = 2 3 3 2 0 4 5 19 Les ; séparent les lignes d une matrice Dimension de la matrice lignes colonnes Pour un vecteur : >> vec = [5 6 9]; >> length(vec) ans = 3

Les matrices L opérateur «:» Permet de créer un vecteur = une série numérique Signifie «à» >> v = 1:10 vec= début : fin v = 1 2 3 4 5 6 7 8 9 10 L incrément est de 1 >> w = 2:.5:4 vec= début : incrément : fin w = 2.0000 2.5000 3.0000 3.5000 4.0000 >> z = 20:-2:15 z = 20 18 16 14 Les crochets ne sont pas nécessaires

Les matrices L adressage >> d = [3 2 0 ; -4 5 19] d = 3 2 0-4 5 19 d (i, j) Indice de la ligne Indice de colonne

Les matrices L adressage 3 2 0 4 5 19 d (i, j) Indice de la ligne Indice de colonne d(2,2)? Accéder à l élément 0 Extraire la première ligne Extraire la troisième colonne Créer à partir de d le vecteur (-4 19) Extraire les colonnes 2 et 3

Les matrices L adressage 3 2 0 4 5 19 d (i, j) Indice de la ligne Indice de colonne d(2,2)? Accéder à l élément 0 Extraire la première ligne Extraire la troisième colonne Créer à partir de d le vecteur (-4 19) Extraire les colonnes 2 et 3 d(2,2)=5 d(1,3) d(1,:) d(:,3) d(2,[1 3]) d(:,2:3) ou d(:,2:end)

Les matrices L adressage 3 2 0 4 5 19 d (i, j) Indice de la ligne Indice de colonne L indexation linéaire des matrices d(1) d(3) d(5) d(2) d(4) d(6) d (k) Un seul indice Créer le vecteur (-4 0) à partir de d (indexation linéaire ou concaténation)

Les matrices L adressage 3 2 0 4 5 19 d (i, j) Indice de la ligne Indice de colonne L indexation linéaire des matrices d(1) d(3) d(5) d(2) d(4) d(6) d (k) Un seul indice Créer le vecteur (-4 0) à partir de d (indexation linéaire ou concaténation) d([2 5]) ou [d(2,1) d(1,3)]

Les matrices L adressage d (i, j) >> d = [3 2 0 ; -4 5 19] d = 3 2 0-4 5 19 Indice de la ligne Indice de colonne >> d(1,1) ans = 3 L élément de la 1 ère ligne, 1 ème colonne >> d(2,3) ans = 19 L élément de la 2 ème ligne, 3 ème colonne

Les matrices L adressage d = L opérateur «:» seul désigne tous les indices 3 2 0-4 5 19 >> d(:,1) ans = 3-4 Tous les éléments de la première colonne >> d(2,:) Tous les éléments de la 2 ème ligne ans = -4 5 19

Les matrices L adressage d = 3 2 0-4 5 19 >> d(2,2:3) ans = 5 19 Extrait les éléments de la 2 ème ligne entre la colonne 2 et 3 >> d(1,[1 3]) ans = 3 0 Extrait les éléments en 1ème et 3 ème colonne au niveau de la 1 ère ligne >> d(:,2:end) ans = 2 0 5 19 Extrait toutes les lignes situées entre la 2ème et la dernière colonne

Les matrices L adressage >> vdata = [1;7;9] vdata = 1 7 9 >> vdata(2) ans = 7 Pour les vecteurs, un seul indice nécessaire >> d(4:6) ans = 5 0 19 L indexation linéaire des matrices d = 3 2 0-4 5 19 d(1) d(3) d(5) d(2) d(4) d(6)

Les matrices Les erreurs d adressage d = 3 2 0-4 5 19 >> d(3,1) Index exceeds matrix dimensions. >> d(0,0) Index exceeds matrix dimensions. >> d(-1,2) Index exceeds matrix dimensions. >> d(7) Index exceeds matrix dimensions.

Les matrices L indexation logique d (condition) d = 3 2 0-4 5 19 >> d(d>2) ans = 35 5 19 >> d(d>1 & d<4) ans = 3 2 >> d(d<=0) = 42 d = 3 2 42 42 5 19 Sort les éléments qui satisfont la comparaison d>2 Change la valeur des éléments inférieurs ou égal à 0 en 42

Les matrices Un cas pratique >> clear all >> load megdata Dans megdata.mat sont stockés les vecteurs tdata(le temps) et xdata (l amplitude) >> whos Name Size Bytes Class tdata 1x6782 54256 double xdata 1x6782 54256 double >> figure Ouvre une nouvelle figure >> plot(tdata,xdata,'+') Trace la courbe xdata = f(tdata) plot(x_abscisse,y_ordonnee,options) Options sur le type de tracé : marqueur +

Les matrices Un cas pratique (suite) >> tpart = tdata(tdata>4 & tdata<8); >> xpart = xdata(tdata>4 & tdata<8); Indexation logique On recherche les indices pour des temps compris entre 4 et 8 s >> whos x* Name Size Bytes Class xdata 1x6782 54256 double xpart 1x2713 21704 double >> figure >> plot(tdata,xdata) >> hold on, plot(tpart,xpart,'r') holdon : on conserve les tracés précédents sur la figure >> print(gcf,'-djpeg100','thegraph')

Les matrices La fonction find Pour une matrice >> [indi,indj] = find(d > 4); d = 3 2 0-4 5 19 indi = 22 indj = 23 Retourne les indices des lignes et colonnes satisfaisant à la condition spécifiée en argument d entrée Pour une matrice simple vecteur >> ind = find(xdata > max(xdata)*0.9); >> plot(tdata(ind),xdata(ind),'gx') Donne les indices des valeurs de xdata supérieures à 90% de la valeur maximale

Les matrices Les opérations A = 3 2 0 Transposition >> A' Calcul matriciel >> A*B >> A/B >> A*B(1,:) 1 6 3 0 0 1 B = -1 6 1 3 2 4 1 2 3 Opérations élément par élément >> A*3 >> A/3 >> A^2 >> A.*B >> A./B >> A.^B >> A-B >> A+B >> A-2

Les matrices Concaténation Horizontale >> [A B] ans = 3 2 0-1 6 1 1 6 3 3 2 4 0 0 1 1 2 3 A = 3 2 0 1 6 3 0 0 1 B = -1 6 1 3 2 4 1 2 3 Verticale >> [A;B] ans = 3 2 0 1 6 3 0 0 1-1 6 1 3 2 4 1 2 3

Les matrices Erreurs de concaténation A = >> [A C] Error using horzcat Dimensions of matrices being concatenated are not consistent. >> [A;C] ans = 3 2 0 1 6 3 0 0 1-1 6 1 >> [A;D] Error using vertcat Dimensions of matrices being concatenated are not consistent. 3 2 0 1 6 3 0 0 1 C = -1 6 1 D = 4 3

Les matrices Les opérations sur les vecteurs Somme d un vecteur >> sum(xd) ans = 16 xd=[3 2 0 1 6 3 0 1]; Moyenne Valeur min et max >> min(xd) ans = 0 >> mean(xd) Sur les matrices, ces fonctions ans = 2 >> max(xd) ans = 6 opèrent par défaut sur chaque colonne >> c = [1 2 3; 3 4 5]; >> mean( c ) ans = 2 3 4

La chaîne de caractère >> onelet = 'Z'; >> vch = 'hello' vch = hello 'permet de définir les objets de type chaîne de caractères >> whos vch Name Size Bytes Class vch 1x5 10 char La chaîne correspond à un vecteur ligne >> vch(5) ans = o >> str = [vch, ' world'] str = hello world L adressage et la concaténation se font comme pour les matrices de nombre >> 'a':'d' ans = abcd

La structure Des bases de données Chaque élément est rangé dans une arborescence de champs Ces éléments sont de tout type (matrice, chaîne de caractère, structure, cellule ) nom_structure.champ.sous_champ >> S.nom = 'toto'; >> S.code = '0+0'; >> S.age = 10 ; >> S.notes.geo = [9 8 7] ; >> S.notes.math = [0 1 2] ; >> S.notes.fran = [7 7 8] ; >> S.code = '0+0'; Définition d une structure S >> S = nom: 'toto' code: '0+0' age: 10 notes: [1x1 struct] >> S.notes ans= geo: [9 8 7] math: [0 1 2] fran: [7 7 8] >> S.notes.math(2) ans = 1

La cellule Un conteneur polyvalent Un tableau rassemblant des éléments de tous types L accolade permet de définir la cellule >> mysupercel = {'hello', S, [2 4 5;3 4 3], {2;'blabla'}}; mysupercel = 'hello' [1x1 struct] [2x3 double] {2x1 cell} >> mysupercel{2} ans = nom: 'toto' code: '0+0' age: 10 notes: [1x1 struct] >> mysupercel{3} ans = 2 4 5 3 4 3 Et d extraire l objet stocké dans la cellule Astuce : pour afficher rapidement le nom de la variable mysupercelstockée en mémoire, on a tapé les première lettres «mys» puis la touche tabulation

Les scripts & fonctions Des fichiers-texte.m Créer ses propres programmes pour le traitement spécifique de ses données Répétition d un même ensemble d instructions sur un lot de données (batch) Programmation facilitée grâce aux fonctions des toolboxs& à ses propres fonctions

Les scripts & fonctions Un script Un fichier texte qui contient une série d instructions Matlab Les instructions sont exécutées ligne après ligne Pour lancer l exécution, il suffit d'entrer le nom du script sur la console Les variables créées dans ce fichier sont conservées dans le workspace Une fonction Le fichier texte commence par l'instruction function Effectue une suite d'instruction en fonction des arguments d'entrée Retourne un ou plusieurs résultats Les variables créées dans ce fichier sont invisibles dans le workspace

EEGLAB Une boîte à outil Matlab Une collection de fonctions pour le traitement des données EEG et MEG: Prétraitement des données Méthodes de moyennage standards. Analyse des composantes indépendantes (ICA) Analyse temps fréquence. Equipé d une interface graphique: Interactive. Flexible.

EEGLAB Aussi Possibilité d accéder à TOUTES les données. La possibilité de manipuler les données est La possibilité de manipuler les données est limitée par notre connaissance de Matlab et du traitement du signal.

Objectifs de cette présentation Comment les données principales sont organisées dans EEGLAB Comment accéder à ces données. Leur manipulation en utilisant des fonctions de Matlab de base. Comment visualiser les données graphiquement.

EEG: Pour commencer Dans la fenêtre de commande tapez: >> eeglab Notez: «No currentdataset». Pour importer des données brutes - format.bdf(biosemi data file): File Import data UsingEEGLAB functionsand Plugins FromBiosemiBDF file

Fenêtre principale «ALLAEEG»: contenant multiple variables EEG «EEG»: la variable de base

«click!»

Cliquez sur l onglet «Datasets» pour voir tout les «datasets» ouverts. Le «Dataset» marqué avec un est le «Dataset» actuel. La variable «EEG»: contient tout les informations sur le «dataset» actuel. La variable «ALLEEG»: stocke tout les variables «EEG» de tout les «datasets» ouverts.

EEGLAB: Structure des données La variable EEG: Contient toutes les informations sur le «dataset» actuel. Pour accéder à la variable EEG dans la fenêtre de commande taper: >>EEG La variable «EEG» est une structure: Un type de données Matlab particulier dans lequel: Des données correspondantes sont regroupées dans des «containers» qu on appelle des «fields». Chaque «field» peut contenir des types de données diverses: caractères (lettres), numéros.

La «EEG» structure

EEGLAB: Structure des données Le variable ALLEEG: Une variable contenant tous les «datasets» actuellement dans le workspace. Donc, il se compose de plusieurs structures«eeg». Pour accéder la variable EEG dans la fenêtre de commande taper >>ALLEEG La variable «ALLEEG»: un structure de dimension 1 x2 : dataset1 dataset2 fieldname1 fieldname1 fieldname2 fieldname2 fieldname3 fieldname3 fieldname4 fieldname4 fieldname5 fieldname5 fieldnamex fieldnamex

EEGLAB: Manipulation des données Activité 1: A partir de la variable EEG, faire un plot qui compare deux électrodes (le signal EEG est continu) On a besoin, principalement de? La variable «EEG» du «dataset» actuel La fonction «plot()». On aura besoin de quel «field» de la structure «EEG»? Comment accéder à ce «field»? Comment accéder aux électrodes individuelles dans ce «field»? Pour faire le plot, on aura besoin d autres données contenues dans le structure «EEG»?

EEGLAB: Manipulation des données Pour résumer I: Le structure du field «data»: E = électrode S = signal N =nombre d échantillons du signal E1,S1 E1,S2 E1,S3 E1,S4 E1,SN E2,S1 E2,S2 E2,S3 E2,S4 E2,SN E3,S1 E3,S2 E3,S3 E3,S4 E3,SN E4,S1 E4,S2 E4,S3 E4,S4 E4,SN E72,S1 E72,S2 E72,S3 E72,S4 E72,SN Accéder au field«data» à partir du structure«eeg»: EEG data >> EEG.data ; A partir du field«data» accéder au signal de la 4 ième électrode: EEG.data ( 4, : ) >> EEG.data(4,:); : = toute la ligne/colonne

EEGLAB: Manipulation des données Pour résumer cont.: Faire un plot temps (x-axes) et signal EEG (y-axis): plot ( x-axis, y-axis) plot (EEG.times, EEG.data(4, : ) ); Faire un plot des signal de la 2 ième au 5 ième électrode: EEG.data(2 à 4, : ) E1,S1 E1,S2 E1,S3 E1,S4 E1,SN E2,S1 E2,S2 E2,S3 E2,S4 E2,SN E3,S1 E3,S2 E3,S3 E3,S4 E3,SN E4,S1 E4,S2 E4,S3 E4,S4 E4,SN E72,S1 E72,S2 E72,S3 E72,S4 E72,SN >> EEG.data(2 :4, :);

EEGLAB: Manipulation des données Activité 2: A partir du variable EEG, faire un plot du signal «baseline» d une électrode (-200ms à 0ms) (le signal EEG est continu) On a besoin, principalement de? La variable «EEG» du «dataset» segmentée La fonction «plot». Le field«data». Le field«times». A partir du field«times», comment accéder à un intervalle de temps? Comment les données segmentées sont organisées dans le field«data»? A partir dufield«data», comment accéder à une électrode dans un epoch particulier?

EEGLAB: Manipulation des données Pour résumer II: L organisation des données segmentées dans le field«data» EEG.data( électrodes, signal, epochs) E1,S1 E1,S2 E1,S3 E1,S4 E1,SN E2,S1 E2,S2 E2,S3 E2,S4 E2,SN E3,S1 E3,S2 E3,S3 E3,S4 E3,SN E1,S1 E4,S1 E1,S2 E4,S2 E1,S3 E4,S3 E1,S4 E4,S4 E1,SN E4,SN E2,S1 E2,S2 E2,S3 E2,S4 E2,SN E3,S1 E72,S1 E3,S2 E72,S2 E3,S3 E72,S3 E3,S4 E72,S4 E3,SN E1,S1 E4,S1 E1,S2 E72,SN E4,S2 E1,S3 E4,S3 E1,S4 E4,S4 E1,SN E4,SN Epoch n E2,S1 E2,S2 E2,S3 E2,S4 E2,SN E3,S1 E72,S1 E3,S2 E72,S2 E3,S3 E72,S3 E3,S4 E72,S4 E3,SN E4,S1 E72,SN E4,S2 E4,S3 E4,S4 E4,SN Epoch 2 E72,S1 E72,S2 E72,S3 E72,S4 E72,SN Epoch 1 EEG.times t 1 t 2 t 3 t 4 t N size(eeg.data, 2) == size(eeg.times, 2)

EEGLAB: Manipulation des données Pour résumer II: On cherchedes éléments du field«times» qui correspondent au baseline (-200ms à 0ms) La fonction find(x): Si X est un matrice, la fonction find(x) donne les indices des éléments non-zéro de X X peut être aussi une expression logique X > 10 ou X ==14 i = find(x ==14) les indices des éléments dans X qui égalent à 14 attribués à la variable i. Donc BL_i= find( EEG.times< = 0 ); % BL_icontient des indices correspondant au baseline BL = EEG.times( BL_i) ; % BL est la variable contenant des points temporels. Bl_sig= EEG.data( 4, Bl_sig, 2); % baselinesignal du 4 ième électrode, 2 ième epoch

Proposition de fiches pratiques & de modèles de scripts Analyse fréquentielle Automatiser le traitement d un lot de données Extraire le contenu d un fichier texte Améliorer l apparence d une figure >> 'A venir sur le site du CREx'