t=[72 4.2,(10+2) 1E1]
Cela crée un vecteur ligne : les élements le constituant doivent être séparés par des espaces ou des virgules. On peut accéder au 2° terme du vecteur simplement
t(2)
Si l'index dépasse la taille du tableau, alors on a le droit à une magnifique erreur du genre ??? Index exceeds matrix dimensions. Malheureusement, ce message risque de s'afficher de nombreuses fois au cours de votre utilisation de Matlab .
t(7)
x=1:5 y=23:-2:1
La syntaxe est assez évidente : debut:fin
ou debut:pas:fin
Si on tape
v=[1;1+i;2;5-2*i]
on obtient cette fois-ci un vecteur colonne. Pour transposer (ou plus exactement transconjuguer) un vecteur, il suffit d'utiliser l'apostrophe :
v'
m=[1 2 3;4 5 6;7 8 9]
val=m(1,3)
(on remarquera que contrairement aux langages genre Java/C, la notation des tableaux commence à 1 !). On peut (dans de très rares cas) utiliser une autre numérotation
val2=m(6)
(Numérptation qui commence en haut à gauche, qui parcourt les colonnes les unes après les autres : ici, m(6)=m(2,3)
).
Tous les opérateurs classiques fonctionnent pour les tableaux/matrices. En réalité, Matlab traite tous les objets comme des tableaux : un réel est ainsi un tableau de taille (1,1). Ainsi, lors du calcul de
1+2
, Matlab effectue l'addition des 2 matrices de taille (1,1).
x=[1 2 3]; y=[4 5 6]; ad=x+y; mu1=x'*y; mu2=x*y'; divers=2*x-y;
(Regarder le contenu de chacune des variables créées). On remarquera également qu'il est impossible de calculer
x*y
pour des raisons de dimension.
x=[1 2 3]; y=[4 5 6]; mu=x.*y; div=y./x; carre=x.^2;
m=[1 2 3 4; 5 6 7 8; 9 10 11 12] m(:,1) m(2,:) m(1:2,2:4) m(1,2:end)
(Effectuer les opérations ligne par ligne)
m=[1 2 3 4; 5 6 7 8; 9 10 11 12] m>5 find(m>5) m(find(m>5))
Bon, comme c'est assez chaud, il y a pas mal d'exercices, de difficulté croissante :
m=rand(4,5);
somme
la somme des termes de coordonnées (1,4), (2,3) et (4,5)m
, et enregistrer le résultat obtenu dans m2
(sans l'afficher)m3
égale au produit de m2
par sa transposéem3
(la valeur de ces termes)resultat
la matrice m3
dans laquelle on a ôté la 1° ligne et 1° colonnefloat
en CamL