[Users-fr] Un problème de liste

AUZANNEAU Fabrice Fabrice.AUZANNEAU at cea.fr
Mar 26 Mai 16:15:42 CEST 2020


Merci de toutes ces réponses !

De : users-fr <users-fr-bounces at lists.scilab.org> De la part de Samuel Gougeon
Envoyé : mardi 26 mai 2020 15:51
À : users-fr at lists.scilab.org
Objet : Re: [Users-fr] Un problème de liste

Bonjour,

Le 26/05/2020 à 12:23, AUZANNEAU Fabrice a écrit :

Bonjour

J'utilise des listes dans un code Scilab et je rencontre un problème pour les modifier dans une fonction. Un exemple simple :


a = list()

function test()
    a(2) = [3,4]
endfunction

a(1) = [1,2,4]
test()
disp(a)



L'exécution donne ce message d'erreur :

à la ligne     2 de la fonction test ( C:\Users\***\Desktop\list.sce ligne 10 )

à la ligne    13 du fichier exécuté C:\Users\***\Desktop\list.sce



Sous-matrice incorrectement définie.



Pour éviter l'erreur, il faut ajouter
a = a
dans la fonction, juste avant a(2) = ... : le 1er adressage de a externe en lecture en crée une copie locale. C'est celle-ci qui sera modifiée par a(2) = ..., et perdue en sortie de fonction.
Pour la retourner dans l'environnement sans la faire figurer en argument de sortie explicite de la fonction, utiliser
a = return(a)

d'où :

function test()

    a = a

    a(2) = [3,4]

    a = return(a)

endfunction



Samuel


-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20200526/badd8d1a/attachment.htm>


Plus d'informations sur la liste de diffusion users-fr