extraction
extraction à partir d'une matrice ou d'une liste
Séquence d'appel
x(i) x(i,j) x(i,j,k,...) [...] = l(i) [...] = l(k1)...(kn)(i) ou [...] = l(list(k1,...,kn,i)) l(k1)...(kn)(i,j) ou l(list(k1,...,kn,list(i,j))
Paramètres
- x
matrice de tout type
- l
liste
- i,j, k, ..
indices
- k1,...kn
indices à valeurs entières
Description
Cas des matrices
i
, j
,
k
, ... peuvent être :
- Un scalaire, un vecteur ou une matrice à éléments positifs.
r=x(i,j)
construit la matricer
telle que:r(l,k)=x(int(i(l)),int(j(k)))
pour
l
variant de 1 àsize(i,'*')
et
k
variant de 1 àsize(j,'*')
.La valeur maximale de
i
(resp.j
) doit être inférieure ou égale àsize(x,1)
(resp.size(x,2)
).r=x(i)
oùx
est une matrice 1 x 1, construit la matricer
telle quer(l,k)=x(int(i(l)),int(i(k)))
pourl
variant de 1 àsize(i,1)
etk
variant de 1 àsize(i,2)
. Noter que dans ce cas l'indicei
est valable si toutes ses composantes sont égales à 1.r=x(i)
avecx
un vecteur ligne, construit le vecteur ligner
tel quer(l)=x(int(i(l)))
pourl
entre 1 etsize(i,'*')
La valeur maximale dei
doit être inférieure ou égale àsize(x,'*')
.r=x(i)
avecx
une matrice à une ou plusieurs colonnes, construit la matricer
telle quer(l)
(l
variant de 1 àsize(i,'*')
) contient le terme numéroint(i(l))
du vecteur colonne issu de la concaténation des colonnes dex
. La valeur maximale dei
doit être inférieure ou égale àsize(x,'*')
.
- Le symbole
:
signifiant "tous les éléments".r=x(i,:)
construit la matricer
telle quer(l,k)=x(int(i(l)),k))
pourl
variant de 1 àsize(i,'*')
etk
variant de 1 àsize(x,2)
r=x(:,j)
construit la matricer
telle quer(l,k)=x(l,int(j(k)))
pourl
variant de 1 àsize(r,1)
etk
variant de 1 àsize(j,'*')
.r=x(:)
construit le vecteur colonner
obtenu par concaténation des colonnes dex
. Cette commande est équivalente àr=matrix(x,size(x,'*'),1)
.
- Un vecteur de booléens
Si un indice (
i
ouj
) est un vecteur de booléen il est interprété commefind(i)
oufind(j)
, respectivement.- Un polynôme
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é.
Dans le case des matrices ayant plus de 2 dimensions (voir:hypermatrices) la dimensionalité est automatiquement réduite si les dimensions les plus à droite sont égales à 1.
Cas des listes
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 extraction
récursive directe sans utiliser de variable intermédiaire.
Les instructions:
[...]=l(k1)...(kn)(i) et
[...]=l(list(k1,...,kn,i))
sont interprétées comme :
lk1 = l(k1)
, .. = ..
,
lkn = lkn-1(kn)
, [...] =
lkn(i)
De même, les instructions
l(k1)...(kn)(i,j) et
l(list(k1,...,kn,list(i,j))
sont interprétées comme :
lk1 = l(k1)
, .. = ..
,
lkn = lkn-1(kn)
,
lkn(i,j)
i
etj
, peuvent être :- un scalaire, un vecteur ou matrice à termes positifs
[r1,...rn]=l(i)
extrait les termesi(k)
de la liste l et les stocke dans les variablesrk
pourk
variant de 1 àsize(i,'*')
- le symbole
:
qui représente "tous les éléments".
- un vecteur de booléens
Si
i
est un vecteur de booléens, il est interprété commefind(i)
.- 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 nombre réel positif à valeur entière
- un polynôme
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
Quand le chemin désigne plusieurs termes d'une liste l'instruction doit avoir autant de termes dans la liste des arguments du membre de gauche que le nombre de termes sélectionnés. Mais si la syntaxe d'extraction est utilisée dans les arguments d'entrée d'une fonction, chaque terme renvoyé est ajouté aux arguments d'entrée.
Notez que l(list())
est identique à
l
.
Remarques
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'extraction des
éléments d'un vecteur, à cause de la confusion possible avec l'extraction
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) a([1 1],2) a(:,1) a(:, 3:-1:1) a(1) a(6) a(:) a([%t %f %f %t]) a([%t %f], [2 3]) a(1:2, $-1) a($:-1:1,2) a($) // x = 'test' x([1 1;1 1;1 1]) // b = [1/%s, (%s+1)/(%s-1)] b(1,1) b(1,$) b(2) // le numérateur
Cas des listes simples et des listes typées tlist :
Voir aussi
- insertion — insertion/modification dans une variable
- 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 | ||
<< bernstein | Fonctions Elémentaires | ind2sub >> |