Help) :
-->I=eye(4,4) I = ! 1. 0. 0. 0. ! ! 0. 1. 0. 0. ! ! 0. 0. 1. 0. ! ! 0. 0. 0. 1. !
Les arguments de la fonction eye(n,m) sont
le nombre de lignes n et le
nombre de colonnes m de la matrice (Rmq : si n < m (resp. n > m) on obtient
la matrice de la surjection (resp. injection) canonique de
vers
.)
-->B=diag(b) B = ! 2. 0. 0. 0. ! ! 0. 10. 0. 0. ! ! 0. 0. 44. 0. ! ! 0. 0. 0. 190. !
(Rmq : cet exemple illustre le fait que Scilab distingue minuscule et majuscule,
taper b pour vous rendre compte que ce vecteur existe toujours dans l'environnement).
Appliquée sur une matrice la fonction diag permet d'en extraire sa diagonale
principale sous la forme d'un vecteur colonne :
-->b=diag(B) b = ! 2. ! ! 10. ! ! 44. ! ! 190. !
Cette fonction admet aussi un deuxième argument optionnel (cf exercices).
-->C = ones(3,4) C = ! 1. 1. 1. 1. ! ! 1. 1. 1. 1. ! ! 1. 1. 1. 1. !
Mais on peut aussi utiliser comme argument le nom d'une matrice déjà définie dans l'environnement et tout se passe comme si l'on avait donné les deux dimensions de cette matrice :
-->O = zeros(C) O = ! 0. 0. 0. 0. ! ! 0. 0. 0. 0. ! ! 0. 0. 0. 0. !
-->U = triu(C) U = ! 1. 1. 1. 1. ! ! 0. 1. 1. 1. ! ! 0. 0. 1. 1. !
permet de créer des matrices remplies de nombres pseudo-aléatoires (suivants une loi uniforme sur [0,1[ mais il est possible d'obtenir une loi normale et aussi de choisir le germe de la suite) :
-->M = rand(2, 6) M = ! 0.2113249 0.0002211 0.6653811 0.8497452 0.8782165 0.5608486 ! ! 0.7560439 0.3303271 0.6283918 0.6857310 0.0683740 0.6623569 !
-->x = linspace(0,1,11) x = ! 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. !
-->y = 0:0.3:1 y = ! 0. 0.3 0.6 0.9 !
La syntaxe est donc : y = valeur_initiale:incrément:limite_a_ne_pas_dépasser.
Lorsque l'on travaille avec des entiers, il n'y pas de problème (sauf entiers très
grands...) à fixer la limite de sorte qu'elle corresponde à la dernière composante :
-->i = 0:2:12 i = ! 0. 2. 4. 6. 8. 10. 12. !
Pour les réels (approché par des nombres flottants) c'est beaucoup moins évident du fait :
-->xx = 0:0.05:0.60 ans = ! 0. 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 !
Rmq : selon l'unité d'arithmétique flottante de l'ordinateur vous pouvez obtenir un résultat différent (c-à-d avec 0.6 comme composante supplémentaire). Souvent l'incrément est égal à 1 et on peut alors l'omettre :
-->ind = 1:5 ind = ! 1. 2. 3. 4. 5. !
Finalement, si l'incrément est positif (resp. négatif) et que limite
< valeur_initiale (resp. limite > valeur_initiale) alors
on obtient un vecteur sans composantes (!) qui est un objet Scilab appelée matrice
vide (cf section quelques primitives matricielles supplémentaires)
:
-->i=3:-1:4
i =
[]
-->i=1:0
i =
[]