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