<< ind2sub Fonctions Elémentaires isempty >>

Scilab Help >> Fonctions Elémentaires > insertion

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 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)=aa 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)=aa 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.

    Si

    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)

    Si

    x est un vecteur ligne (resp. colonne) a doit être un vecteur ligne (resp. colonne) de dimension size(i,'*')

    Si

    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

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,'*')

Vecteurs de booléens

Si un indice (i ou j ) est un vecteur de booléens, il est interprété comme find(i) ou find(j), respectivement.

Polynomes

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é.

Cas des listes
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)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 :

l = list(1,'qwerw',%s)
l(1) = 'Changed'
l(0) = 'Added'
l(%pi) = 1  // équivalent à l(3)=1
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

Voir aussi


Report an issue
<< ind2sub Fonctions Elémentaires isempty >>