insertion
insertion/modification dans une variable
affectation
affectation partielle d'une variable
Séquence d'appel
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
Paramètres
- x
matrice de tout type
- l
liste
- i,j
indices
- k1,...kn
indices à valeurs entières
- a
nouvelles valeurs des termes
Description
Cas des matrices
Si x
est un tableau i
et j
peuvent être :
- Des scalaires, vecteurs ou matrices
Dans ce cas, les valeurs données en indices doivent être strictement positives. Seules les parties entières sont prises en compte.
Si
a
est une matrice de dimensions(size(i,'*'),size(j,'*'))
x(i,j)=a
renvoie une nouvelle matricex
telle quex(int(i(l)),int(j(k)))=a(l,k)
pourl
variant de 1 àsize(i,'*')
etk
variant de 1 àsize(j,'*')
, les autres composantes initiales dex
sont inchangées.Si
a
est un scalairex(i,j)=a
renvoie une nouvelle matricex
telle quex(int(i(l)),int(j(k)))=a
pourl
variant de 1 àsize(i,'*')
etk
variant de 1 àsize(j,'*')
, les autres composantes initiales dex
sont inchangées.Si la valeur maximum de
i
ouj
dépasse la dimension correspondante dex
, alorsx
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 pari
sij
désigne toutes les colonnes dex
ou détruit les colonnes spécifiées parj
sii
désigne toutes les lignes dex
. Dans tous les autres casx(i,j)=[]
produit une erreur.x(i)=a
oùa
est un vecteur renvoie une nouvelle matricex
telle quex(int(i(l)))=a(l)
pourl
variant de 1 àsize(i,'*')
, les autres composantes initiales dex
sont inchangées.x(i)=a
oùa
est un scalaire, renvoie une nouvelle matricex
telle quex(int(i(l)))=a
pourl
variant de 1 àsize(i,'*')
, les autres composantes initiales dex
sont inchangées.Si la valeur maximum de
i
dépassesize(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.- Si
x
est une matrice 1 x 1a
peut être un vecteur ligne (resp. colonne) de dimensionsize(i,'*')
. La matricex
obtenue est un vecteur ligne (resp. colonne)- Si
x
est un vecteur ligne (resp. colonne)a
doit être un vecteur ligne (resp. colonne) de dimensionsize(i,'*')
- Si
x
est une matrice en générala
doit être un vecteur ligne ou colonne de dimensionsize(i,'*')
et la valeur maximum dei
ne peut dépassersize(x,'*')
,
x(i)=[]
supprime les termes spécifiés pari
.
- Le : symbole
Le symbole
:
signifiant "tous les éléments".x(i,:)=a
est interprété commex(i,1:size(x,2))=a
x(:,j)=a
est interprété commex(1:size(x,1),j)=a
x(:)=a
renvoie dansx
la matricea
remise en forme en accord avec les dimensions de x.size(x,'*')
doit être égal àsize(a,'*')
- Vecteurs de booléens
Si un indice (
i
ouj
) est un vecteur de booléens, il est interprété commefind(i)
oufind(j)
, respectivement.- Polynomes
Si un indice (
i
ouj
) est un vecteur de polynômes ou de polynômes implicites, il est interprété commehorner(i,m)
ouhorner(j,n)
, respectivement, oùm
etn
sont les dimensions dex
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é.
Cas des listes
S'ils sont présents les
ki
donnent le chemin vers un terme d'une sous-liste de la listel
. Ils permettent de faire une insertion récursive directe sans utiliser de variable intermédiaire. Les instructionsl(k1)...(kn)(i)=a
etl(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 instructions
l(k1)...(kn)(i,j)=a
etl(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 (seule sa partie entière est prise en compte).
l(0)=a
ajoute un terme "à gauche" de la listel(i)=a
affectea
au termei
de la listel
. Sii>size(l)
,l
est préalablement agrandie et les termes créés sont de type non-défini.l(i)=null()
supprime le termei
th de la liste.un polynôme. Si
i
est un vecteur de polynômes ou de polynômes implicites il est interprété commehorner(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)
oum
est la taille de la sous-liste correspondante.une chaîne de caractères associée à un nom d'entrée de sous-liste.
Remarque
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.
Exemples
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 a(1,%pi) = 1 // équivalent à a(1,3)=1 // 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 simples ou tlist :
Voir aussi
- extraction — extraction à partir d'une matrice ou d'une liste
- colon — Générateur de séries. Adresse tous les éléments d'une liste ou d'un tableau
- find — donne la position des éléments %T ou non nuls d'un tableau booléen ou numérique.
- horner — évalue des polynômes ou des fractions rationnelles en des valeurs données
- parentheses — parenthèses droite et gauche
Report an issue | ||
<< ind2sub | Fonctions Elémentaires | isempty >> |