Recent Changes - Search:

Home?

RunningExperiments

AnalysingData

MEG Group

Administrative info

Computers and network

Meetings

How to improve this site

NotesDuCours2

Tableau de cellules

  • permet de rassembler des données de formats différents (matrices, chaînes de caractères, nombres...) dans la même structure.
  • cell(N) crée un tableaux de N lignes et N colonnes de matrices vides
    >> A=cell(2)

        A = 

              []     []
              []     []
  • cell(M,N) crée un tableau de M lignes et N colonnes de matrices vides
    >> B=cell(3,4)

         B = 

             []     []     []     []
             []     []     []     []
             []     []     []     []
  • cell(size(A)) crée un tableau de matrices vides de la même taille que A
    >> C=cell(size(A))

          C = 

            []     []
            []     []

   >> D=cell(size(B))

         D = 

            []     []     []     []
            []     []     []     []
            []     []     []     []
  • On peut ensuite remplir les cellules du tableau en assignant des données à chaque cellule
    >> A(1,2)={2:4}

         A = 

             []    [1x3 double]
             []              []

   >> A{2,1}='name'

         A = 

             []    [1x3 double]
         'name'              []
  • Pour accéder aux éléments de la cellule, il faut mettre des accolades:
    >> A{1,2}

         ans =

             2     3     4

    >> A{2,1}

        ans =

            name
  • On aurait aussi pu créer directement A sans passer par la création d'un tableau de cellules vides
    >> A={[] [2:4]; 'name' []}

          A = 

              []    [1x3 double]
          'name'              []

    >> C= {[1] [2 3 4]; 'Philippe', B}   On peut inclure dans le tableau directement la matrice B

           C = 

          [       1]    [1x3 double]
          'Philippe'    {3x4 cell  }
  • La fonction cell2mat permet de convertir un tableau de cellules en matrice lorsque les données contenues dans toutes les cellules sont de même type.
    >> A= {[1] [2 3 4]; [5; 9] [6 7 8; 10 11 12]};

    >> cell2mat(A)

        ans =

            1     2     3     4
            5     6     7     8
            9    10    11    12
  • La fonction mat2cell permet de transformer une matrice en tableau de matrices. mat2cell (X,M,N) transforme la matrice X en tableau de ROW lignes et COL colonnes où M est un vecteur des tailles des lignes dont la somme doit être égale à ROW et N est un vecteur des tailles des colonnes dont la somme doit être égale à COL.
    >> X = [1 2 3 4; 5 6 7 8; 9 10 11 12];

    >> size(X)

         ans =

            3     4    X est un vecteur de 3 lignes et 4 colonnes

    >> C = mat2cell(X,[1 2],[1 3])  Ici [1 2] et [1 3] sont bien égales à 3 et 4, respectivement

            C = 

                 [         1]    [1x3 double]
                 [2x1 double]    [2x3 double]
  • num2cell(D): chaque élément de la matrice D est mis dans une cellule différente.
    >> D=[1:3;2:4;5:7]

          D =

            1     2     3
            2     3     4
            5     6     7

    >> F=num2cell(D)

          F = 

           [1]    [2]    [3]
           [2]    [3]    [4]
           [5]    [6]    [7]

Chaînes de caractères

  • Pour définir une chaîne de caractères, il suffit de taper ce qu'on veut écrire entre apostrophes.

>> s='toto'

s =

toto

A noter: dans la fenêtre matlab, la chaîne de caractères est collée contre le bord gauche de la fenêtre, sans être décalée vers la droite, au contraire des valeurs numériques.

  • La fonction ischar(S) renvoie 1 si S est une chaîne de caractères et 0 sinon

>> ischar(s)

ans =

     1
  • La fonction cellstr(S) place chaque ligne de S dans des cellules différentes d'un tableau

>> C=cellstr(s)

C =

    'toto'
    'titi'
  • La fonction iscellstr(S) renvoie 1 si S est une cellule remplie de chaînes de caractères et 0 sinon

>> iscellstr(C)

ans =

     1

Concaténation

  • Pour concaténer des chaînes de caractères, on peut
    • mettre les chaînes de caractères entre crochets séparées ou non par une virgule

>> s=['toto' 'titi']

s =

tototiti

>> s=['toto' ,'titi']

s =

tototiti

  • utiliser la fonction strcat(S1,S2)

>> s=strcat('toto', 'titi')

s =

tototiti

La fonction strcat retire les espaces entre les chaînes de caractères.

  • Pour concaténer verticalement des chaînes de caractères, on peut utiliser
    • la fonction char(S1,S2)
    • ou la fonction strvact(S1,S2)
    • séparer les chaînes de caractères par un point virgule

>> s=char('toto', 'titi')

s =

toto titi

>> strvcat('toto','titi')

ans =

toto titi

>> s=['toto' ; 'titi']

s =

toto

titi

Rechercher et comparer des chaînes de caractères

  • La fonction findstr(S,'a') cherche dans S le caractère 'a'.

>> findstr(s,'t')

ans =

     1     3     5     7
  • La fonction findstr(S1,S2) cherche la chaîne de caractères S2 dans S1 à condition que S2 soit moins longue que S1 (sinon elle cherche S1 dans S2) et renvoie une (ou plusieurs) position(s).

>> S2='to'

S2 =

to

>> findstr(s,S2)

ans =

     1     3
Edit - History - Print - Recent Changes - Search
Page last modified on March 12, 2009, at 10:05 AM