[Users-fr] [PROVENANCE INTERNET] Un problème de liste

Stéphane Mottelet stephane.mottelet at utc.fr
Mar 26 Mai 14:24:47 CEST 2020


Bonjour,

Le 26/05/2020 à 13:46, Lamy Alain a écrit :
>
> Oui : on ne peut pas modifier une variable globale dans une fonction.
>
Si, justement, mais c'est très laid :

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

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

--> disp(a)


              (1)

    1.   2.   4.

              (2)

    3.   4.

> Le mieux :
>
> a= list()
>
> function[a] = _test_(a)
>
> a(2) = [3,4]
>
> endfunction
>
> a(1)= [1,2,4]
>
> _a = test_(a)
>
> disp(a)
>
> Alain Lamy
>
> CNES - DSO/DV/IF - Bpi 1712
>
> 18, Av. Edouard Belin |  Tel  : 05 61 27 35 61
>
> 31401 Toulouse Cedex 9 |  Fax  : 05 61 28 25 40
>
> France |  Email : Alain.Lamy at cnes.fr <mailto:Alain.Lamy at cnes.fr>
>
> *From:* users-fr <users-fr-bounces at lists.scilab.org> *On Behalf Of 
> *GOBILLOT Gilles 116128
> *Sent:* mardi 26 mai 2020 13:26
> *To:* French users mailing list for Scilab <users-fr at lists.scilab.org>
> *Subject:* Re: [Users-fr] [PROVENANCE INTERNET] Un problème de liste
>
> Bonjour,
>
> A mon avis il faut soit passer a en paramètre à la fonction, soit 
> déclarer la liste en global  (globala)?
>
> Cordialement,
>
> http://www.cea.fr/var/cea/signatures/cea_logo.jpg 
> <https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/www.cea.fr/>
>
> 	
>
> Gilles GOBILLOT
> *Ingénieur-Chercheur *
>
> DES/IRESNE/DTN/STCP/LISM
> Commissariat à l'énergie atomique et aux énergies alternatives
> Tel.: 04.42.25.20.33 / Mobile : 06.87.99.19.57
>
> /Toute notre actualité sur /www.cea.fr
> <https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/www.cea.fr/>/Suivez-nous 
> également sur Twitter :/@CEA_Recherche 
> <https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/twitter.com/#!/CEA_Recherche>
>
> *De :*users-fr <users-fr-bounces at lists.scilab.org 
> <mailto:users-fr-bounces at lists.scilab.org>> *De la part de* AUZANNEAU 
> Fabrice
> *Envoyé :* mardi 26 mai 2020 12:23
> *À :* French users mailing list for Scilab <users-fr at lists.scilab.org 
> <mailto:users-fr at lists.scilab.org>>
> *Objet :* [PROVENANCE INTERNET] [Users-fr] Un problème de liste
>
> 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.
>
> Lorsque je demande le contenu de la liste a, j’obtiens :
>
> --> a
>
> a  =
>
>        a(1)
>
> 1.           2.   4.
>
> Si je mets l’instruction de la fonction dans le programme principal, 
> tout se passe bien :
>
> a= list()
> a(1)= [1,2,4]
> a(2)= [3,4]
> disp(a)
>
> L’exécution donne :
>
> exec('C:\Users\***\Desktop\list.sce', -1)
>
>              (1)
>
>    1.   2.   4.
>
>              (2)
>
>    3.   4.
>
> Est-ce un bug ou une erreur de ma part ? Comment modifier une liste 
> depuis une fonction ?
>
> Merci
>
> Fabrice AUZANNEAU
>
> Commissariat à l’énergie atomique et aux énergies alternatives
>
> http://lists.scilab.org/mailman/listinfo/users-fr 
> <https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users-fr>
>
>
> _______________________________________________
> users-fr mailing list
> users-fr at lists.scilab.org
> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users-fr

-- 
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
http://www.utc.fr/~mottelet

-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20200526/1194dc1b/attachment.htm>
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: image001.jpg
Type: image/jpeg
Taille: 8708 octets
Desc: non disponible
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20200526/1194dc1b/attachment.jpg>


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