modifie la valeur d'un élément d'une mlist, tlist ou list
uL = setfield(a, v, L)
list
, tlist
ou
mlist
, dont un élement doit être modifié.
L=setfield(a,v,L)
adresse et modifie le
ième élément d'une liste, selon une
syntaxe identique pour tous les types list, tlist et mlist
disponibles en Scilab.
Pour des simples list et pour des mlist, L=setfield(a,v,L)
est équivalent à L(a)=v
, qui est plus simple et préférable.
L'équivalence tient aussi pour toute mlist si l'adresse a
est le nom d'un champ.
En revanche, pour toute mlist L
, si i
est un n°, L(i)=v
adresse le ième
élément de L
considérée comme un vecteur, au lieu
du ième élément tel que déclaré dans la
définition initiale mlist(c1,c2,c3...)
.
setfield(i,v,L)
aura alors le même sens que pour les
autres types de listes.
Pour une tlist, setfield(3, v, T)
équivaut à
T(3)=v
:
T = tlist(['V','a','b'], [%z (1-%z) %z^2], [%f %t %t]); // L'insertion est prédéfinie : T(3) = [%t %t %f]; T(3) T = setfield(3, [%f %t %f], T); T(3) | ![]() | ![]() |
--> T = tlist(['V','a','b'], [%z (1-%z) %z^2], [%f %t %t]); --> // L'insertion est prédéfinie : --> T(3) = [%t %t %f]; --> T(3) ans = T T F --> T = setfield(3, [%f %t %f], T); --> T(3) ans = F T F
Pour une mlist, aucune routine d'insertion indexée n'est prédéfinie. L'utilisateur est ainsi libre d'en définir une pour un adressage matriciel des données.
M = mlist(['V','a','b'], [%z (1-%z) %z^2], [%f %t %t]); M.b = [%t %t %t]; M.b // OK, alors que ... M(3) = [%f %t %f]; // => erreur // Une insertion directe avec setfield() est toujours possible : M = setfield(3, [%t %f %t], M); getfield(3, M) | ![]() | ![]() |
--> M = mlist(['V','a','b'], [%z (1-%z) %z^2], [%f %t %t]); --> M.b = [%t %t %t]; --> M.b ans = T T T --> M(3) = [%t %f %t]; // => erreur Fonction non définie pour les types fournis. vérifier les arguments ou définir la fonction %b_i_V pour la surcharge. --> // Une insertion directe avec setfield() est toujours possible : --> M = setfield(3, [%t %f %t], M); --> getfield(3, M) ans = T F T
Version | Description |
6.0.0 |
|