From Fabrice.AUZANNEAU at cea.fr Tue May 26 12:23:13 2020 From: Fabrice.AUZANNEAU at cea.fr (AUZANNEAU Fabrice) Date: Tue, 26 May 2020 10:23:13 +0000 Subject: [Users-fr] =?iso-8859-1?q?_Un_probl=E8me_de_liste?= Message-ID: <39E6377A1FCCBC46BC9457F416E580DA506CDDAE@EXDAG0-A3.intra.cea.fr> 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 -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From gilles.gobillot at cea.fr Tue May 26 13:26:02 2020 From: gilles.gobillot at cea.fr (GOBILLOT Gilles 116128) Date: Tue, 26 May 2020 11:26:02 +0000 Subject: [Users-fr] =?iso-8859-1?q?=5BPROVENANCE__INTERNET=5D___Un_probl?= =?iso-8859-1?q?=E8me_de_liste?= In-Reply-To: <6494_1590492200_5ECCFC28_6494_16769_12_39E6377A1FCCBC46BC9457F416E580DA506CDDAE@EXDAG0-A3.intra.cea.fr> References: <6494_1590492200_5ECCFC28_6494_16769_12_39E6377A1FCCBC46BC9457F416E580DA506CDDAE@EXDAG0-A3.intra.cea.fr> Message-ID: <59863E6B3B5B7245A7B5660A00E8C8996019F204@EXDAG0-A0.intra.cea.fr> Bonjour, A mon avis il faut soit passer a en paramètre à la fonction, soit déclarer la liste en global (global a)? Cordialement, [http://www.cea.fr/var/cea/signatures/cea_logo.jpg] 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 Suivez-nous également sur Twitter : @CEA_Recherche De : users-fr De la part de AUZANNEAU Fabrice Envoyé : mardi 26 mai 2020 12:23 À : French users mailing list for Scilab 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 -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: image001.jpg Type: image/jpeg Taille: 8708 octets Desc: image001.jpg URL: From Alain.Lamy at cnes.fr Tue May 26 13:46:52 2020 From: Alain.Lamy at cnes.fr (Lamy Alain) Date: Tue, 26 May 2020 11:46:52 +0000 Subject: [Users-fr] =?iso-8859-1?q?=5BPROVENANCE__INTERNET=5D___Un_probl?= =?iso-8859-1?q?=E8me_de_liste?= In-Reply-To: <59863E6B3B5B7245A7B5660A00E8C8996019F204@EXDAG0-A0.intra.cea.fr> References: <6494_1590492200_5ECCFC28_6494_16769_12_39E6377A1FCCBC46BC9457F416E580DA506CDDAE@EXDAG0-A3.intra.cea.fr> <59863E6B3B5B7245A7B5660A00E8C8996019F204@EXDAG0-A0.intra.cea.fr> Message-ID: <8F232902ADB4E14EB16789FB7006FC84729ABBC1@TW-MBX-P01.cnesnet.ad.cnes.fr> Oui : on ne peut pas modifier une variable globale dans une fonction. 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 From: users-fr On Behalf Of GOBILLOT Gilles 116128 Sent: mardi 26 mai 2020 13:26 To: French users mailing list for Scilab 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 (global a)? Cordialement, [http://www.cea.fr/var/cea/signatures/cea_logo.jpg] 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 Suivez-nous également sur Twitter : @CEA_Recherche De : users-fr > De la part de AUZANNEAU Fabrice Envoyé : mardi 26 mai 2020 12:23 À : French users mailing list for Scilab > 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 -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: image001.jpg Type: image/jpeg Taille: 8708 octets Desc: image001.jpg URL: From stephane.mottelet at utc.fr Tue May 26 14:24:47 2020 From: stephane.mottelet at utc.fr (=?UTF-8?Q?St=c3=a9phane_Mottelet?=) Date: Tue, 26 May 2020 14:24:47 +0200 Subject: [Users-fr] =?utf-8?q?=5BPROVENANCE_INTERNET=5D_Un_probl=C3=A8me_d?= =?utf-8?q?e_liste?= In-Reply-To: <8F232902ADB4E14EB16789FB7006FC84729ABBC1@TW-MBX-P01.cnesnet.ad.cnes.fr> References: <6494_1590492200_5ECCFC28_6494_16769_12_39E6377A1FCCBC46BC9457F416E580DA506CDDAE@EXDAG0-A3.intra.cea.fr> <59863E6B3B5B7245A7B5660A00E8C8996019F204@EXDAG0-A0.intra.cea.fr> <8F232902ADB4E14EB16789FB7006FC84729ABBC1@TW-MBX-P01.cnesnet.ad.cnes.fr> Message-ID: <0432a914-61c1-71d2-7873-c17c7835a912@utc.fr> 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 > > *From:* users-fr *On Behalf Of > *GOBILLOT Gilles 116128 > *Sent:* mardi 26 mai 2020 13:26 > *To:* French users mailing list for Scilab > *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 > > > > > 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 > /Suivez-nous > également sur Twitter :/@CEA_Recherche > > > *De :*users-fr > *De la part de* AUZANNEAU > Fabrice > *Envoyé :* mardi 26 mai 2020 12:23 > *À :* French users mailing list for Scilab > > *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 > > > > _______________________________________________ > 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: -------------- 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: From Alain.Lamy at cnes.fr Tue May 26 14:52:15 2020 From: Alain.Lamy at cnes.fr (Lamy Alain) Date: Tue, 26 May 2020 12:52:15 +0000 Subject: [Users-fr] =?iso-8859-1?q?=5BPROVENANCE_INTERNET=5D_Un_probl=E8me?= =?iso-8859-1?q?_de_liste?= In-Reply-To: <0432a914-61c1-71d2-7873-c17c7835a912@utc.fr> References: <6494_1590492200_5ECCFC28_6494_16769_12_39E6377A1FCCBC46BC9457F416E580DA506CDDAE@EXDAG0-A3.intra.cea.fr> <59863E6B3B5B7245A7B5660A00E8C8996019F204@EXDAG0-A0.intra.cea.fr> <8F232902ADB4E14EB16789FB7006FC84729ABBC1@TW-MBX-P01.cnesnet.ad.cnes.fr> <0432a914-61c1-71d2-7873-c17c7835a912@utc.fr> Message-ID: <8F232902ADB4E14EB16789FB7006FC84729ABC6A@TW-MBX-P01.cnesnet.ad.cnes.fr> 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 : Oui bien sûr, mais je voulais dire « sans le mot-clé global ». -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From sgougeon at free.fr Tue May 26 15:51:02 2020 From: sgougeon at free.fr (Samuel Gougeon) Date: Tue, 26 May 2020 15:51:02 +0200 Subject: [Users-fr] =?utf-8?q?Un_probl=C3=A8me_de_liste?= In-Reply-To: <39E6377A1FCCBC46BC9457F416E580DA506CDDAE@EXDAG0-A3.intra.cea.fr> References: <39E6377A1FCCBC46BC9457F416E580DA506CDDAE@EXDAG0-A3.intra.cea.fr> Message-ID: <71c9eec2-63b0-37fd-79e3-c8f3e7b2aa25@free.fr> 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: From Fabrice.AUZANNEAU at cea.fr Tue May 26 16:15:42 2020 From: Fabrice.AUZANNEAU at cea.fr (AUZANNEAU Fabrice) Date: Tue, 26 May 2020 14:15:42 +0000 Subject: [Users-fr] =?iso-8859-1?q?Un_probl=E8me_de_liste?= In-Reply-To: <71c9eec2-63b0-37fd-79e3-c8f3e7b2aa25@free.fr> References: <39E6377A1FCCBC46BC9457F416E580DA506CDDAE@EXDAG0-A3.intra.cea.fr> <71c9eec2-63b0-37fd-79e3-c8f3e7b2aa25@free.fr> Message-ID: <39E6377A1FCCBC46BC9457F416E580DA506CF262@EXDAG0-A3.intra.cea.fr> Merci de toutes ces réponses ! De : users-fr 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: