Previous Up Next

6.44.13  Modifier un élément ou une ligne d’une matrice contenue dans une variable : =<

Si la matrice a un nom, on peut assigner un élément d’une matrice en utilisant son indice entouré de crochets si les indices commencent à 0 et entouré de doubles crochets si les indices commencent à 1.
Si on assigne avec :=, une nouvelle copie de la matrice est créée et l’élément est modifié, et si on assigne avec =< la matrice est modifiée sans faire de copie ce qui est plus rapide lorque la matrice est de grande taille.
Par exemple :
Si A:=[[4,5],[2,6]], pour modifier A en la matrice [[4,5],[3,6]] on peut taper :
A[1,0]:=3 ou
A[1,0]=<3 ou
A[[2,1]]:=3 ou
A[[2,1]]=<3
Puis on tape :
A
On obtient la nouvelle valeur de A :
[[4,5],[3,6]]
On peut aussi modifier une ligne, par exemple, si A:=[[4,5],[2,6]] pour modifier en A la matrice [[4,5],[3,7]], on peut taper :
A:=[[4,5],[2,6]] A[1]:=[3,7] ou
A[1]=<[3,7] ou
A[[2]]:=[3,7] ou
A[[2]]=<[3,7] ou
Puis on tape :
A
On obtient la nouvelle valeur de A :
[[4,5],[3,7]].
Remarque
Il faut utiliser =< avec précautions car tous les objets pointant sur cette matrice seront modifiés. Dans un programme il faudra utiliser copy lors de l’initialisation pour que les modifications se fassent sur la copie (cf 8.4.14).
Par exemple :
On tape :
B:=[[4,5],[2,6]]
A=<B ou A:=B
A,B
On obtient :
[[4,5],[2,6]],[[4,5],[2,6]]
On tape :
B[1]=<[3,7] ou A[1]=<[3,7]
A,B
On obtient :
[[4,5],[3,7]],[[4,5],[3,7]]
Mais si on tape :
B:=[[4,5],[2,6]]
A:=copy(B)
A,B
On obtient :
[[4,5],[2,6]],[[4,5],[2,6]]
On tape :
B[1]=<[3,7]
A,B
On obtient :
[[4,5],[2,6]],[[4,5],[3,7]]
Ou si on tape :
B:=[[4,5],[2,6]]
A:=copy(B)
A,B
On obtient :
[[4,5],[2,6]],[[4,5],[2,6]]
On tape :
A[1]=<[3,7]
A,B
On obtient :
[[4,5],[3,7]],[[4,5],[2,6]]


Previous Up Next