[Users-fr] Un problème de liste
Samuel Gougeon
sgougeon at free.fr
Mar 26 Mai 15:51:02 CEST 2020
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/349e6366/attachment.htm>
Plus d'informations sur la liste de diffusion users-fr