[Users-fr] [PROVENANCE INTERNET] Un problème de liste
Lamy Alain
Alain.Lamy at cnes.fr
Mar 26 Mai 13:46:52 CEST 2020
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<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 (global a)?
Cordialement,
[http://www.cea.fr/var/cea/signatures/cea_logo.jpg]<http://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
<http://www.cea.fr/>Suivez-nous également sur Twitter : @CEA_Recherche<https://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
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20200526/803137dc/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: image001.jpg
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20200526/803137dc/attachment.jpg>
Plus d'informations sur la liste de diffusion users-fr