Académique Documents
Professionnel Documents
Culture Documents
Département d’Informatique
MST SIDI – Module: TSN – A.U 2022/2023
Une syntaxe plus simple est disponible, qui ne nécessite pas d’utiliser les virgules et les points-virgules.
Lors de la création d’une matrice, l’espace vide sépare les colonnes tandis que la nouvelle ligne sépare
les lignes, comme dans la syntaxe suivante :
A = [a11 a12 ... a1n
a21 a22 ... a2n
...
an1 an2 ... ann]
Cela permet d’alléger considérablement la gestion des matrices, comme dans l'exemple suivant.
-->A = [1 2 3
-->4 5 6]
A=
1. 2. 3.
4. 5. 6.
Plusieurs commandes Scilab permettent de créer des matrices à partir d’une taille donnée, c’est-à-dire à
partir d’un nombre donné de lignes et de colonnes. Les plus utilisées sont les eye, linespace, zeros, ones,
etc. Ces commandes prennent deux arguments d’entrée, le nombre de lignes et de colonnes de la matrice
à générer.
Exemples :
--> eye(4,4) --> linspace(0,1,6) --> ones(2,3) --> zeros(2,3)
0. 1. 0. 0. 1. 1. 1. 0. 0. 0.
0. 0. 1. 0.
0. 0. 0. 1.
TP1 : Vecteurs, matrices et tracés 2D/3D sous Scilab Pr. Ahmed ELABBASSI/Pr. Abdelaaziz HESSANE
Faculté des Sciences et Techniques
Département d’Informatique
MST SIDI – Module: TSN – A.U 2022/2023
[]
Cette syntaxe permet de supprimer le contenu d’une matrice, de sorte que la mémoire associée soit
libérée.
--> M=ones(3,3)
--> M=[]
M =
[]
1. 4. 5.
3. 7. 9.
--> [n,m]=size(A)
m =
3.
n =
2.
La fonction size a une valeur pratique importante lorsque nous concevons une fonction, car le traitement
que nous devons effectuer sur une matrice donnée peut dépendre de sa forme. Par exemple, pour calculer
la norme d’une matrice donnée, différents algorithmes peuvent être utilisés selon que la matrice est un
vecteur colonne de taille nr × 1 et nr> 0, un vecteur ligne de taille 1 × nc et nc> 0, ou une matrice
générale de taille nr × nc et nr, nc> 1.
TP1 : Vecteurs, matrices et tracés 2D/3D sous Scilab Pr. Ahmed ELABBASSI/Pr. Abdelaaziz HESSANE
Faculté des Sciences et Techniques
Département d’Informatique
MST SIDI – Module: TSN – A.U 2022/2023
La fonction size a aussi la syntaxe suivante nr = size(A,sel) qui permet d’obtenir uniquement le nombre
de lignes ou le nombre de colonnes et où sel peut avoir les valeurs suivantes :
• sel = 1 ou sel = "r", retourne le nombre de lignes,
• sel = 2 ou sel = "c", renvoie le nombre de colonnes.
• sel = "*", renvoie le nombre total d’éléments, c’est-à-dire le nombre de colonnes multiplié
par le nombre de lignes.
Exemples :
--> A=ones(5,3)
A =
1. 1. 1.
1. 1. 1.
1. 1. 1.
1. 1. 1.
1. 1. 1.
--> size(A,1)
ans =
5.
--> size(A,2)
ans =
3.
--> size(A,'*')
ans =
15.
TP1 : Vecteurs, matrices et tracés 2D/3D sous Scilab Pr. Ahmed ELABBASSI/Pr. Abdelaaziz HESSANE
Faculté des Sciences et Techniques
Département d’Informatique
MST SIDI – Module: TSN – A.U 2022/2023
Avec un vecteur de valeurs indexées, nous pouvons accéder aux éléments d’une matrice dans un
intervalle donné, comme avec la syntaxe simplifiée suivante A(i : j, k : l) où i, j, k, l sont des valeurs
d’index de début et de fin. La syntaxe complète est A(i : s : j, k : t : l), où s et t sont les étapes.
Par exemple, supposons que A est une matrice 4 × 5, et que nous voulons accéder aux
éléments ai,j pour i = 1, 2 et j = 3,4. Avec le langage Scilab, cela peut être fait en une seule instruction
, en utilisant la syntaxe A(1 : 2, 3 : 4), comme indiqué dans l’exemple suivant :
--> A=testmatrix('magi',5)
A =
1. 8.
7. 14.
TP1 : Vecteurs, matrices et tracés 2D/3D sous Scilab Pr. Ahmed ELABBASSI/Pr. Abdelaaziz HESSANE
Faculté des Sciences et Techniques
Département d’Informatique
MST SIDI – Module: TSN – A.U 2022/2023
--> A=testmatrix('magi',3)
A =
8. 1. 6.
3. 5. 7.
4. 9. 2.
--> A($-1,$-2)
ans =
3.
Opérations élémentaires
TP1 : Vecteurs, matrices et tracés 2D/3D sous Scilab Pr. Ahmed ELABBASSI/Pr. Abdelaaziz HESSANE
Faculté des Sciences et Techniques
Département d’Informatique
MST SIDI – Module: TSN – A.U 2022/2023
Si un point "." Est écrit devant un opérateur, il est associé à un opérateur élémentaire, c’est-à-dire que
l’opération est effectuée élément par élément.
Par exemple,
Avec l’opérateur de multiplication habituel "*", le contenu de la matrice C = A * B est 𝑐𝑖,𝑗 =
∑𝑛𝑘=1 𝑎𝑖,𝑘 𝑏𝑘,𝑗
Avec l’opérateur de multiplication élémentaire ". *", Le contenu de la matrice C = A.* B est 𝑐𝑖,𝑗 =
𝑎𝑖,𝑗 𝑏𝑖,𝑗
Exercice 5 :
Evaluer les opérateurs «Addition », « soustraction » entre deux matrices ou plus. Donner quelques
exemples avec le code Scilab correspondant.
Exercice 6 :
TP1 : Vecteurs, matrices et tracés 2D/3D sous Scilab Pr. Ahmed ELABBASSI/Pr. Abdelaaziz HESSANE
Faculté des Sciences et Techniques
Département d’Informatique
MST SIDI – Module: TSN – A.U 2022/2023
Les tracés dans le plan se font avec la commande plot. On peut choisir la couleur et l’aspect en mettant
les indications de couleur et de style de points entre guillemets :
Les couleurs :
"b" = bleu (par défaut), "k" = noir, "r" = rouge, "g" = vert, "c" = cyan, "m" = magenta, "y" = jaune,
"w" = blanc.
Les styles de points :
Reliés (part défaut), ou ".", "+", "o", "x", "*"
D’autres options sont disponibles avec : "s", "d", "v", "<", et ">".
Tracés de base
Pour tracer un point
Tracer le point A(1, 2) avec un point rouge :
Editeur Scilab Fenêtre graphique
plot(1,2,".r")
TP1 : Vecteurs, matrices et tracés 2D/3D sous Scilab Pr. Ahmed ELABBASSI/Pr. Abdelaaziz HESSANE
Faculté des Sciences et Techniques
Département d’Informatique
MST SIDI – Module: TSN – A.U 2022/2023
En ajoutant le programme ci-dessous, on obtient le tracé des deux courbes, celle de f en rouge et celle
de g en vert. Le tracé précédent a été effacé grâce à la commande clf.
Editeur Scilab Fenêtre graphique
Statistiques doubles
Les nuages statistiques sont donnés sous la forme de deux vecteurs : appelons les X et Y, on écrira alors
plot(X, Y, "<") pour tracer le nuage des points M(Xi ; Yi) avec triangles bleus.
TP1 : Vecteurs, matrices et tracés 2D/3D sous Scilab Pr. Ahmed ELABBASSI/Pr. Abdelaaziz HESSANE
Faculté des Sciences et Techniques
Département d’Informatique
MST SIDI – Module: TSN – A.U 2022/2023
Tracés en 3D
Scilab permet de tracer des surfaces et des courbes dans l’espace avec un grand nombre d’options pour
le traitement des faces cachées, la couleur des faces, les points de vue, etc. Nous ne donnerons ici que
deux exemples.
La fonction surf permet de tracer une surface. Cette fonction prend trois variables d’entrée, x, y et
z. x et y sont des vecteurs de taille respective m et n correspondant à des points des axes (0x) et (0y). z
est une matrice de dimension n x m dont l’élément zij est la code du point de la surface d’abscisse xi
et d’ordinées yj.
Pour tracer la surface définie par une fonction de type z = f(x, y), il faut donc :
1. Définir la fonction f
2. Calculer z = feval(x, y, f)’ (feval(x,y,f) retourne la matrice m x n dont l’élément
ij est f(xi,yj) que l’on va transposer en utilisant l’apostrophe "’"
3. Appliquer surf(x, y, z)
La fonction param3d permet de tracer une courbe dans l’espace. param3d prend trois arguments, x,
y et z, qui sont des vecteurs de même taille correspondant aux points (xi, yi, zi) de la courbe.
Le tracé de l’hélice définie par (x = cos(t), y = sin(t), z= t) :
Editeur Scilab Fenêtre graphique
t=linspace(0,4*%pi,100);
param3d(cos(t),sin(t),t)
Exercice 7 :
Représenter les signaux élémentaires suivants : Impulsion de Dirac, Echelon, Rampe, Exponentiel,
Exponentiel inverse et Sinusoïdal.
TP1 : Vecteurs, matrices et tracés 2D/3D sous Scilab Pr. Ahmed ELABBASSI/Pr. Abdelaaziz HESSANE
Faculté des Sciences et Techniques
Département d’Informatique
MST SIDI – Module: TSN – A.U 2022/2023
TAD 2 :
Répondre aux exercices 1 → 7 ;
Consignes :
1. Utiliser la commande subplot pour afficher les 6 graphiques dans une seule figure.
2. Rédiger un compte rendu de 3 à 5 pages avec le code source des signaux générés
(Seulement le code source des exercices 6 et 7 est demandé, penser à nommer les
fichiers comme suit : exo6.sce et exo7.sce)
3. Le compte rendu concerne tous les exercices !
4. Des captures d’écran des résultats de l’exécution des codes sont envisagées.
5. Envoyer le rapport avant le 12/11/2022.
Bon courage !
TP1 : Vecteurs, matrices et tracés 2D/3D sous Scilab Pr. Ahmed ELABBASSI/Pr. Abdelaaziz HESSANE