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
aest une matrice de dimensions(size(i,'*'),size(j,'*'))x(i,j)=arenvoie une nouvelle matricextelle quex(int(i(l)),int(j(k)))=a(l,k)pourlvariant de 1 àsize(i,'*')etkvariant de 1 àsize(j,'*'), les autres composantes initiales dexsont inchangées.Si
aest un scalairex(i,j)=arenvoie une nouvelle matricextelle quex(int(i(l)),int(j(k)))=apourlvariant de 1 àsize(i,'*')etkvariant de 1 àsize(j,'*'), les autres composantes initiales dexsont inchangées.Si la valeur maximum de
ioujdépasse la dimension correspondante dex, alorsxest 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 parisijdésigne toutes les colonnes dexou détruit les colonnes spécifiées parjsiidésigne toutes les lignes dex. Dans tous les autres casx(i,j)=[]produit une erreur.x(i)=aoùaest un vecteur renvoie une nouvelle matricextelle quex(int(i(l)))=a(l)pourlvariant de 1 àsize(i,'*'), les autres composantes initiales dexsont inchangées.x(i)=aoùaest un scalaire, renvoie une nouvelle matricextelle quex(int(i(l)))=apourlvariant de 1 àsize(i,'*'), les autres composantes initiales dexsont inchangées.Si la valeur maximum de
idépassesize(x,1),xest 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
xest une matrice 1 x 1apeut être un vecteur ligne (resp. colonne) de dimensionsize(i,'*'). La matricexobtenue est un vecteur ligne (resp. colonne)- Si
xest un vecteur ligne (resp. colonne)adoit être un vecteur ligne (resp. colonne) de dimensionsize(i,'*')- Si
xest une matrice en généraladoit être un vecteur ligne ou colonne de dimensionsize(i,'*')et la valeur maximum deine peut dépassersize(x,'*'),
x(i)=[]supprime les termes spécifiés pari.
- Le : symbole
Le symbole
:signifiant "tous les éléments".x(i,:)=aest interprété commex(i,1:size(x,2))=ax(:,j)=aest interprété commex(1:size(x,1),j)=ax(:)=arenvoie dansxla matricearemise en forme en accord avec les dimensions de x.size(x,'*')doit être égal àsize(a,'*')
- Vecteurs de booléens
Si un indice (
iouj) est un vecteur de booléens, il est interprété commefind(i)oufind(j), respectivement.- Polynomes
Si un indice (
iouj) est un vecteur de polynômes ou de polynômes implicites, il est interprété commehorner(i,m)ouhorner(j,n), respectivement, oùmetnsont les dimensions dexassocié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
kidonnent 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)=aetl(list(k1,...,kn,i)=a)sont interprétées comme :lk1 = l(k1).. = ..lkn = lkn-1(kn)lkn(i) = alkn-1(kn) =lkn.. = ..les instructions
l(k1)...(kn)(i,j)=aetl(list(k1,...,kn,list(i,j))=asont interprétées comme:lk1 = l(k1).. = ..lkn =lkn-1(kn)lkn(i,j) = alkn-1(kn) = lkn.. = ..l(k1) = lk1ipeut être :un scalaire réel positif (seule sa partie entière est prise en compte).
l(0)=aajoute un terme "à gauche" de la listel(i)=aaffecteaau termeide la listel. Sii>size(l),lest préalablement agrandie et les termes créés sont de type non-défini.l(i)=null()supprime le termeith de la liste.un polynôme. Si
iest 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,..knpeuvent être :un polynôme, interprété comme
horner(ki,m)oumest 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 >> |