Re: [PROVENANCE INTERNET] Un problème de liste

classic Classic list List threaded Threaded
4 messages Options
GOBILLOT Gilles 116128 GOBILLOT Gilles 116128
Reply | Threaded
Open this post in threaded view
|

Re: [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 <[hidden email]> De la part de AUZANNEAU Fabrice
Envoyé : mardi 26 mai 2020 12:23
À : French users mailing list for Scilab <[hidden email]>
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
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr
Alain LAMY Alain LAMY
Reply | Threaded
Open this post in threaded view
|

Re: [PROVENANCE INTERNET] Un problème de liste

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 : [hidden email]

 

From: users-fr <[hidden email]> On Behalf Of GOBILLOT Gilles 116128
Sent: mardi 26 mai 2020 13:26
To: French users mailing list for Scilab <[hidden email]>
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 <[hidden email]> De la part de AUZANNEAU Fabrice
Envoyé : mardi 26 mai 2020 12:23
À : French users mailing list for Scilab <[hidden email]>
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
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr
mottelet mottelet
Reply | Threaded
Open this post in threaded view
|

Re: [PROVENANCE INTERNET] Un problème de liste

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 : [hidden email]

 

From: users-fr [hidden email] On Behalf Of GOBILLOT Gilles 116128
Sent: mardi 26 mai 2020 13:26
To: French users mailing list for Scilab [hidden email]
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 <[hidden email]> De la part de AUZANNEAU Fabrice
Envoyé : mardi 26 mai 2020 12:23
À : French users mailing list for Scilab <[hidden email]>
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
[hidden email]
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

_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr
Alain LAMY Alain LAMY
Reply | Threaded
Open this post in threaded view
|

Re: [PROVENANCE INTERNET] Un problème de liste

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 ».

 

_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr