insertion — insertion/modification dans une variable
x(i,j)=a x(i)=a l(i)=a l(k1)...(kn)(i)=a ou l(list(k1,...,kn,i))=a l(k1)...(kn)(i,j)=a ou l(list(k1,...,kn,list(i,j))=a
matrice de tout type
liste
indices
indices à valeurs entières
nouvelles valeurs des termes
Si x
est un tableau i
et j
peuvent être :
Dans ce cas les parties entieres des valeurs données en indices doivent être strictement positives. Seule la prtie entière est prise e, compte.
Si a
est une matrice de dimensions
(size(i,'*'),size(j,'*'))
x(i,j)=a
renvoie une nouvelle matrice
x
telle que x(int(i(l)),int(j(k)))=a(l,k)
pour l
variant de 1 à
size(i,'*')
et k
variant de
1 à size(j,'*')
, les autres composantes
initiales de x
sont inchangées.
Si a
est un scalaire
x(i,j)=a
renvoie une nouvelle matrice
x
telle que x(int(i(l)),int(j(k)))=a
pour l
variant de 1 à
size(i,'*')
et k
variant de
1 à size(j,'*')
, les autres composantes
initiales de x
sont inchangées.
Si la valeur maximum de i
ou
j
dépasse la dimension correspondante de
x
, alors x
est au préalable agrandie
aux dimensions adéquates en stockant des zéros pour les matrices
standard, des chaînes vides pour les matrices de chaînes de
caractères ou la valeur %F pour les matrices booléennes.
x(i,j)=[]
détruit les lignes
spécifiées par i
si j
désigne toutes
les colonnes de x
ou détruit les colonnes
spécifiées par j
si i
désigne toutes
les lignes de x
. Dans tous les autres cas
x(i,j)=[]
produit une erreur.
x(i)=a
où a
est un
vecteur renvoie une nouvelle matrice x
telle que
x(int(i(l)))=a(l)
pour l
variant de 1
à size(i,'*')
, les autres composantes
initiales de x
sont inchangées.
x(i)=a
où a
est un
scalaire, renvoie une nouvelle matrice x
telle que
x(int(i(l)))=a
pour l
variant de 1 à
size(i,'*')
, les autres composantes
initiales de x
sont inchangées.
Si la valeur maximum de i
dépasse
size(x,1)
, x
est au préalable agrandie
aux dimensions adéquates en stockant des zéros pour les matrices
standard, des chaînes vides pour les matrices de chaînes de
caractères ou la valeur %F pour les matrices booléennes.
x
est une matrice 1 x 1 a
peut
être un vecteur ligne (resp. colonne) de dimension
size(i,'*')
. La matrice
x
obtenue est un vecteur ligne
(resp. colonne)
x
est un vecteur
ligne (resp. colonne) a
doit être un vecteur
ligne (resp. colonne) de dimension
size(i,'*')
x
est une matrice
en général a
doit être un vecteur ligne ou
colonne de dimension size(i,'*')
et
la valeur maximum dei
ne peut dépasser
size(x,'*')
,
x(i)=[]
supprime les termes
spécifiés par i
.
Le symbole :
signifiant "tous les éléments".
x(i,:)=a
est interprété comme
x(i,1:size(x,2))=a
x(:,j)=a
est interprété comme
x(1:size(x,1),j)=a
x(:)=a
renvoie dans
x
la matrice a
remise en forme en
accord avec les dimensions de
x. size(x,'*')
doit être égal
àsize(a,'*')
Si un indice
(i
ou j
) est un vecteur de booléens, il
est interprété comme find(i)
ou find(j)
,
respectivement.
Si un indice (i
ou
j
) est un vecteur de polynômes ou de polynômes
implicites, il est interprété comme horner(i,m)
ou
horner(j,n)
, respectivement, où m
et
n
sont les dimensions de x
associées.
Même si cette fonctionnalité marche pour tous les polynômes, il
est recommandé d'utiliser des polynômes dans $
par souci de lisibilité.
S'ils sont présents les ki
donnent le chemin
vers un terme d'une sous-liste de la liste
l
. Ils permettent de faire une insertion récursive
directe sans utiliser de variable intermédiaire. Les instructions
l(k1)...(kn)(i)=a
et
l(list(k1,...,kn,i)=a)
sont interprétées comme :
lk1 = l(k1)
.. = ..
lkn = lkn-1(kn)
lkn(i) = a
lkn-1(kn) =lkn
.. = ..
les instructionsl(k1)...(kn)(i,j)=a
et
l(list(k1,...,kn,list(i,j))=a
sont interprétées
comme:
lk1 = l(k1)
.. = ..
lkn =lkn-1(kn)
lkn(i,j) = a
lkn-1(kn) = lkn
.. = ..
l(k1) = lk1
i
peut être :
un scalaire réel positif
l(0)=a
ajoute un terme "à gauche"
de la liste l(i)=a
affecte a
au
terme i
de la liste l
. Si
i>size(l)
, l
est
préalablement agrandie et les termes créés sont de type
non-défini. l(i)=null()
supprime le terme
i
th de la liste.
un polynôme. Si i
est un
vecteur de polynômes ou de polynômes implicites il est
interprété comme horner(i,m)
où
m=size(l)
. Même si cette fonctionnalité marche
pour tous les polynômes, il est recommandé d'utiliser
des polynômes dans $
par souci de lisibilité.
k1,..kn
peuvent être :
un polynôme, interprété comme
horner(ki,m)
ou m
est la taille de
la sous-liste correspondante.
une chaîne de caractères associée à un nom d'entrée de sous-liste.
Pour les matrices rationnelles et les systèmes dynamiques
linéaires stockés sous forme de représentation d'état, la
syntaxe x(i)
ne doit pas être utilisée pour
l'insertion des éléments d'un vecteur, à cause de la
confusion possible avec l'insertion des éléments de liste. La
syntaxe x(1,j)
où x(i,1)
doit être
utilisée dans ce cas.
// CAS DES MATRICES a=[1 2 3;4 5 6] a(1,2)=10 a([1 1],2)=[-1;-2] a(:,1)=[8;5] a(1,3:-1:1)=[77 44 99] a(1)=%s a(6)=%s+1 a(:)=1:6 a([%t %f],1)=33 a(1:2,$-1)=[2;4] a($:-1:1,1)=[8;7] a($)=123 // x='test' x([4 5])=['4','5'] // b=[1/%s,(%s+1)/(%s-1)] b(1,1)=0 b(1,$)=b(1,$)+1 b(2)=[1 2] // le numérateur // CAS des LISTES (types LIST et TLIST) l=list(1,'qwerw',%s) l(1)='Changed' l(0)='Added' l(6)=['one more';'added'] // // dts=list(1,tlist(['x';'a';'b'],10,[2 3])); dts(2)('a')=33 dts(2)('b')(1,2)=-100