• Aucun résultat trouvé

[PDF] Formation informatique d Introduction à Matlab | Cours informatique

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Formation informatique d Introduction à Matlab | Cours informatique"

Copied!
79
0
0

Texte intégral

(1)

Traitement des données avec Matlab

Une introduction

(2)

Matlab : « Matrix laboratory »

● 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

% Cleve Moler, concepteur du langage Matlab (fin 70’s) en Fortran

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

(3)

● Une bibliothèque de fonctions intégrées

Le concept Matlab : les toolboxs

Une fonction :

▸ un fichier texte contenant une série d’instructions ▸ retourne un résultat en fonction des paramètres d’entrée ▸ 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

(4)

● 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,

Le concept Matlab : les toolboxs

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…

(5)

● Des toolboxs supplémentaires spécialisées (payantes), fonctionnalités avancées Signal Processing Image Processing Statistics Wavelet …

Le concept Matlab : les toolboxs

● Des toolboxs dé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

(6)

Objectifs

Manipuler les données

Effectuer des calculs de base

Visualiser les données

Plan

La prise en main

Les matrices et les opérations

Fonctions & scripts

Exemples avec les données

(7)

Prise en main

L’interface

(8)

Prise en main

L’interface

L’invite de commandes :

(9)

Prise en main

L’interface

Des volets supplémentaires éventuels

(historique des commandes, liste des variables, aperçu du dossier courant)

(10)

L’aide

Prise en main

L’interface

(11)

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

(12)

Prise en main

L’interface

Set path : liste des dossiers de fonctions

Définition des chemins d’accès aux différentes toolboxs

(13)

Prise en main

(14)

Prise en main

Les calculs élémentaires

>> 3^2*(2+5)/(5-2)

Symbole de

En mode « calculatrice » : on écrit le calcul désiré

(

)

2

5

5

2

3

2

+

×

Opérateurs courants : ^ : exponentiation * : multiplication / : division Symbole de l’invite de commande

(15)

Prise en main

>> 3^2*(2+5)/(5-2)

ans =

En mode « calculatrice » : on écrit le calcul désiré puis « Entrée »

Les calculs élémentaires

Entrée

ans =

21

Résultat assigné à la variable ans (answer)

(16)

Prise en main

>> 3^2*(2+5)/(5-2)

ans =

En mode « calculatrice » : on écrit le calcul désiré puis « Entrée »

Les calculs élémentaires

ans =

21

>> ans/2

ans =

10.5000

Valeur décimale : « . » Résultat assigné à la variable ans (answer)

(17)

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)

(18)

Prise en main

Les variables

Affecter une valeur à une variable

>> a = 35.6

a =

Entrée

a =

35.6000

(19)

Prise en main

Affecter une valeur à une variable

>> a = 35.6

a =

Les variables

a =

35.6000

>> b = 273.15;

>>

Pas d’affichage

(20)

Prise en main

Affecter une valeur à une variable

>> a

a =

Les variables

a =

35.6000

>> b

b =

273.15

a et b sont conservées en mémoire = dans le Workspace

(21)

Prise en main

Lister les variables créées dans le workspace

>> whos

Name

Size Bytes Class Attributes

Les variables

Name

Size Bytes Class Attributes

a 1x1 8 double

b 1x1 8 double

(22)

Prise en main

Affecter une valeur à une variable

>> tK = a + b

tK =

Créer une nouvelle variable à partir des variables déjà définies

Les variables

308.7500

>> a = 32;

variables déjà définies

Définir une nouvelle valeur pour a

(23)

Prise en main

Affecter une valeur à une variable

>> tK = a + b

tK =

Pour afficher à nouveau l’équation écrite précédemment, utiliser la flèche directionnelle ↑ du clavier

Les variables

305.1500

clavier Nouvelle valeur de tK

(24)

Prise en main

La notation en puissance de 10

>> pot = 2.16*10^(-6)

pot =

Les variables

6

10

16

,

2

×

2.1600e-06

>> pot = 2.16e-6

pot =

2.1600e-06

Notation équivalente

(25)

Prise en main

Les variables du workspace sont effacées à la fermeture de Matlab

>> save myvar a b tK

Fichier MAT créé dans le dossier courant

Pour les sauvegarder :

Nom du fichier Variables à

Les variables

>> load myvar

Charger les variables dans le workspace

Pour les récupérer lors d’une nouvelle session ou après

suppression :

Nom du fichier Variables à stocker

(26)

Prise en main

>> clear a b tK

Pour effacer certaines variables :

Les variables

>> clear

all

(27)

Prise en main

Des constantes prédéfinies

>> pi

ans =

3.1416

>> i

Pour afficher davantage de décimales :

>> format long >> pi

ans =

3.141592653589793

L’unité imaginaire pour définir les

>> i

ans =

0.0000 + 1.0000i

>> 0/0

ans =

NaN

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

(28)

Prise en main

Des fonctions prédéfinies

>> cos(2*pi)

ans =

1

>> sqrt(25)

Les fonctions trigonométriques :

cos, sin, tan, Inverses : asin, acos,

Hyperboliques : sinh, acosh

Des fonctions mathématiques :

>> sqrt(25)

ans =

5

>> round(pi*2)

ans =

6

Des fonctions mathématiques :

sqrt : racine carrée

log, log10, exp, abs, sign

Des fonctions d’arrondis :

round: entier le plus proche floor, ceil, fix

(29)

Prise en main

Des fonctions prédéfinies

>> figure

>> plot(2.56,3.18,

'rx'

,

'MarkerSize'

,12)

Des fonctions pour la visualisation

Valeur(s) en

abscisse associées en Valeur

Options de mise en

forme

hist (histogramme),plot3 (tracé 3D), surf (surface),image (images jpeg…)

>> sphere(16)

… des milliers de fonctions prédéfinies

abscisse associées en ordonnée

(30)

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.

See also floor, round, fix.

Reference page in Help browser

Utilité, arguments d'entrées, options, résultats

Reference page in Help browser

doc ceil

>> doc

Recherche de fonctionnalités par

(31)

Les matrices

L’élément de base en Matlab

(MATrix LABoratory)

(32)

Les matrices

L’élément de base en Matlab

(MATrix LABoratory)

Presque tout est matrice (tableau de valeurs)

(33)

Les matrices

L’élément de base en Matlab

(MATrix LABoratory)

a(1,1) a(1,2) …. a(1,n)

a(2,1) a(2,2) …. a(2,n)

n colonnes

m

l

ig

n

e

s

Presque tout est matrice (tableau de valeurs)

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)

m

l

ig

n

e

s

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)

(34)

Les matrices

Un nombre : matrice de dimension

1 x 1

Un vecteur en ligne :

1 x n

a(1,1)

L’élément de base en Matlab

(MATrix LABoratory)

Un vecteur en ligne :

1 x n

Un vecteur en colonne :

m x 1

n colonnes

a(1,1) a(1,2) …. a(1,n)

m l ig n e s a(1,1) a(2,1) a(m,1)

(35)

Une matrice multidimentionnelle (3D) :

m x n x p

a(1,1,p) a(1,2,p) …. a(1,n,p) a(2,1,p) a(2,2,p) …. a(2,n,p)

n colonnes

Les matrices

L’élément de base en Matlab

(MATrix LABoratory)

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)

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(2,1,p) a(2,2,p) …. a(2,n,p) ⁞ ⁞ ⁞ a(m,1,p) a(m,2,p) …. a(m,n,p)

m l ig n e s

(36)

Un nombre (scalaire) : matrice de dimension

1 x 1

Un vecteur en ligne :

1 x 4

6

10

56

,

1

×

(

29

5

336

7

)

Les matrices

Quelques exemples concrets

Un vecteur en colonne :

2 x 1

Une matrice multidimentionnelle :

2 x 3 x 3





4

5

19

0

2

3





3

2

1

3

24

12





2

8

5

36

2

0





189

,

1

567

,

2

(37)

6

10

56

,

1

×

>> a = 1.56e6;

>> b = [29 5 336 7]

b =

29 5 336 7

Les espaces séparent les éléments du vecteur ligne. Ou les virgules :

Les matrices

L’affectation

Des crochets pour définir la matrice Un seul nombre

(

29

5

336

7

)





189

,

1

567

,

2

29 5 336 7

>> c = [2.567 ; 1.189]

c =

2.5670

1.1890

vecteur ligne. Ou les virgules :

>> b = [29,5,336,7];

Les ; séparent les éléments du vecteur colonne

(38)





4

5

19

0

2

3

>> d = [3 2 0 ; -4 5 19]

d =

3 2 0

Les ; séparent les lignes d’une matrice

Les matrices

L’affectation

3 2 0

-4 5 19

>> size(d)

ans =

2 3

Dimension de la matrice lignes colonnes Pour un vecteur : >> vec = [5 6 9]; >> length(vec) ans = 3

(39)

Les matrices

L’opérateur «

: »

Permet de créer un vecteur = une série numérique

Signifie « à »

vec = début : fin

>> v = 1:10

v =

1 2 3 4 5 6 7 8 9 10

L’incrément est de 1

vec = début : incrément : fin

>> w = 2:.5:4

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

(40)

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

d (i, j)

Indice de colonne

(41)

Les matrices

L’adressage





4

5

19

0

2

3

Indice de la ligne

d (i, j)

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

(42)

Les matrices

L’adressage





4

5

19

0

2

3

Indice de la ligne

d (i, j)

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)

(43)

Les matrices

L’adressage





4

5

19

0

2

3

Indice de la ligne

d (i, j)

Indice de colonne Un seul indice

d (k)

Créer le vecteur (-4 0) à partir de d (indexation linéaire ou concaténation)

L’indexation linéaire des matrices

d(1) d(3) d(5)

d(2) d(4) d(6)

(44)

Les matrices

L’adressage





4

5

19

0

2

3

Indice de la ligne

d (i, j)

Indice de colonne Un seul indice

d (k)

Créer le vecteur (-4 0) à partir de d (indexation linéaire ou concaténation)

L’indexation linéaire des matrices

d(1) d(3) d(5)

d(2) d(4) d(6)

d([2 5]) ou [d(2,1) d(1,3)]

(45)

>> d(1,1)

Les matrices

L’adressage

Indice de la ligne >> d = [3 2 0 ; -4 5 19] d = 3 2 0 -4 5 19

d (i, j)

Indice de colonne

>> d(1,1)

ans =

3

>> d(2,3)

ans =

19

L’élément de la 1ère ligne, 1ème colonne

L’élément de la 2ème ligne, 3ème

(46)

>> d(:,1)

ans =

3

-4

Tous les éléments de la première colonne

Les matrices

L’adressage

d =

3 2 0 -4 5 19

● L’opérateur « : » seul désigne tous les

indices

3

-4

>> d(2,:)

ans =

-4 5 19

(47)

>> d(2,2:3)

ans =

5 19

Extrait les éléments de la 2ème ligne

entre la colonne 2 et 3

Les matrices

L’adressage

d = 3 2 0 -4 5 19

>> d(1,[1 3])

ans =

3 0

>> d(:,2:end)

ans =

2 0

5 19

Extrait les éléments en 1ème et 3ème

colonne au niveau de la 1ère ligne

Extrait toutes les lignes situées entre la 2ème et la dernière colonne

(48)

>> vdata = [1;7;9]

vdata =

1

7

9

>> vdata(2)

Les matrices

L’adressage

>> vdata(2)

ans =

7

>> d(4:6)

ans =

5 0 19

Pour les vecteurs, un seul indice nécessaire

L’indexation linéaire des matrices

d(1) d(3) d(5) d(2) d(4) d(6)

d =

3 2 0 -4 5 19

(49)

>> d(3,1)

Index exceeds matrix dimensions.

>> d(0,0)

Les matrices

Les erreurs d’adressage

d =

3 2 0

-4 5 19

>> d(0,0)

Index exceeds matrix dimensions.

>> d(-1,2)

Index exceeds matrix dimensions.

>> d(7)

(50)

Les matrices

L’indexation logique

>> d(d>2)

ans =

3

5

Sort les éléments qui satisfont la comparaison d>2 d = 3 2 0 -4 5 19

d (condition)

5

19

>> d(d>1 & d<4)

ans =

3

2

>> d(d<=0) = 42

d =

3 2 42

42 5 19

Change la valeur des éléments inférieurs ou égal à 0 en 42

(51)

Les matrices

Un cas pratique

>> clear all

>> load megdata

>> whos

Name Size Bytes Class

tdata 1x6782 54256 double xdata 1x6782 54256 double

Dans megdata.mat sont stockés les vecteurs tdata (le temps) et xdata

(l’amplitude)

>> figure

>> plot(tdata,xdata,'+')

Ouvre une nouvelle figure

Trace la courbe xdata = f(tdata)

plot(x_abscisse,y_ordonnee,options)

Options sur le type de tracé : marqueur +

(52)

Les matrices

Un cas pratique (suite)

>> tpart = tdata(tdata>4 & tdata<8);

>> xpart = xdata(tdata>4 & tdata<8);

>> whos x*

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')

>> print(gcf,'-djpeg100','thegraph')

hold on : on conserve les tracés précédents

(53)

Les matrices

La fonction find

>> [indi,indj] = find(d > 4);

indi =

2

2

indj =

Retourne les indices des lignes et colonnes satisfaisant à la condition

spécifiée en argument d’entrée

d =

3 2 0 -4 5 19

Pour une matrice

indj =

2

3

>> ind = find(xdata > max(xdata)*0.9);

>> plot(tdata(ind),xdata(ind),

'gx'

)

spécifiée en argument d’entrée

Donne les indices des valeurs de xdata supérieures à 90% de la valeur

maximale

(54)

Les matrices

Les opérations

A =

3 2 0

1 6 3

0 0 1

B =

-1 6 1

3 2 4

1 2 3

Transposition

Calcul matriciel

>> A'

>> A*B >> A/B

>> A*B(1,:)

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

>> A*B >> A/B

(55)

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

0 0 1 1 2 3

>> [A;B]

ans =

3 2 0

1 6 3

0 0 1

-1 6 1

3 2 4

1 2 3

(56)

Les matrices

Erreurs de concaténation

A = 3 2 0 1 6 3 0 0 1 C = -1 6 1 D = 4

>> [A C]

Error using horzcat

Dimensions of matrices being

concatenated are not consistent.

>> [A;C]

4 3

ans =

3 2 0

1 6 3

0 0 1

-1 6 1

>> [A;D]

Error using vertcat

Dimensions of matrices being

(57)

Les matrices

Les opérations sur les vecteurs

xd=[3 2 0 1 6 3 0 1];

Somme d’un vecteur

Moyenne

>> sum(xd)

ans =

16

>> mean(xd)

Sur les matrices, ces fonctions

Valeur min et max

>> min(xd)

ans =

0

>> max(xd)

ans =

6

>> mean(xd)

ans =

2

Sur les matrices, ces fonctions opèrent par défaut sur chaque

colonne

>> c = [1 2 3; 3 4 5]; >> mean( c )

ans =

(58)

La chaîne de caractère

>> onelet = 'Z'; >> vch = 'hello' vch = hello >> whos vch

Name Size Bytes Class vch 1x5 10 char

' permet de définir les objets de type chaîne de caractères

La chaîne correspond à un vecteur ligne >> vch(5) ans = o >> str = [vch, ' world'] str = hello world >> 'a':'d' ans = abcd

L’adressage et la concaténation se font comme pour les matrices de nombre

(59)

La structure

Des bases de données

>> S.nom = 'toto';

>> S.code = '0+0'; Définition d’une

nom_structure.champ.sous_champ…

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…)

>> 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] ; Définition d’une structure S >> S.notes.math(2) ans = 1 >> 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]

(60)

La cellule

Un conteneur polyvalent

>> mysupercel = {'hello', S, [2 4 5;3 4 3], {2;'blabla'}};

mysupercel =

'hello' [1x1 struct] [2x3 double] {2x1 cell}

L’accolade permet de définir la cellule

Un tableau rassemblant des éléments de tous types

'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 mysupercel stockée en mémoire, on a tapé les première lettres

(61)

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

(62)

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

(63)

EEGLAB

Une boîte à outil Matlab

Une collection de fonctions pour le traitement

des données EEG et MEG:

Prétraitement des données

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.

(64)

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.

(65)

Objectifs de cette présentation

Comment les données principales sont organisées

dans EEGLAB

Comment accéder à ces données.

Comment accéder à ces données.

Leur manipulation en utilisant des fonctions de

Matlab de base.

(66)

EEG: Pour commencer

Dans la fenêtre de commande tapez:

>> eeglab

Notez: « No current dataset ».

Notez: « No current dataset ».

Pour importer des données brutes - format .bdf (biosemi

data file):

(67)

« ALLAEEG »: contenant multiple variables EEG Fenêtre principale

(68)
(69)

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.

(70)

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.

(71)
(72)

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

(73)

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 » ?

(74)

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,:);

(75)

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:

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

Faire un plot des signal de la 2

ième

au 5

ième

électrode:

EEG.data(2 à 4, : ) …

(76)

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 « times ». Le field « data ». Le field « times ». Le field « data ».

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 »?

(77)

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 E4,S1 E4,S2 E4,S3 E4,S4 … E4,SN

E72,S1 E72,S2 E72,S3 E72,S4 … E1,S1 E1,S2 E1,S3 E1,S4 … E1,SN E2,S1 E2,S2 E2,S3 E2,S4 … E2,SN

EEG.times

E72,S1 E72,S2 E72,S3 E72,S4 … E72,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

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

Epoch 1 Epoch 2

Epoch n

t1 t2 t3 t4 … tN

(78)

EEGLAB: Manipulation des données

Pour résumer II:

On cherche des é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

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_i contient des indices correspondant au baseline

BL = EEG.times ( BL_i) ; % BL est la variable contenant des points temporels.

(79)

Analyse fréquentielle

Automatiser le traitement d’un lot de données

Extraire le contenu d’un fichier texte

Proposition de fiches pratiques &

de modèles de scripts

Extraire le contenu d’un fichier texte

Améliorer l’apparence d’une figure

Références

Documents relatifs

Dans une deuxième phase d'analyse, nous nous sommes intéressés non plus à l’ensemble des éléments lexicaux, mais aux éléments inconnus ou quasi-inconnus en

Néanmoins, dans la mesure où le riz constitue la référence de base pour les ménages ruraux de cette zone (mais plus généralement à Madagascar), le taux de couverture alimentaire en

Sa thèse s’intègre dans le cadre du projet de recherche BISE2 (Business Information System for Energy and Environnement), et porte sur l’interprétation des événements dans

If the difference between the number of children that White and Visible Minorities females have were significant, then the discrimination portion of the wage

générer cette dernière est liée au pouvoir de marché de la société acquéreuse. Mais bien souvent, la création de valeur dans les F&amp;A n’est pas toujours au rendez-vous. De

L’analyse des messages publiés sur deux supports matériels de Twitter créés par la RTS a révélé comment des acteurs médiatiques et des acteurs non

We examine the impact of the abnormal part of recognized goodwill (proxy for PPA quality) on revisions of analyst expectations (i.e. revision of target prices, earnings

Our overview of the network of actors that participate in the construction of the notion of data journalism, according to the interviewees, reveals that there is a handful of