[users-fr] Passer des arguments par référence à une fonction écrite en scilab.
Adrien Vogt-Schilb
vogt at centre-cired.fr
Lun 4 Juin 14:30:09 CEST 2012
Oups, désolé.
Global ne marche effectivement pas avec l'optimisation
On 04/06/2012 14:27, Adrien Vogt-Schilb wrote:
> Bonjour
>
> global est votre ami:
>
> function update_a()
> global a
> a =a +1
> endfunction
>
>
> global a
>
> a= 0
> update_a()
> a
> update_a();
> update_a();
> update_a();
> update_a();
>
> a
>
>
>
> à lire:
>
> help global
> http://wiki.scilab.org/howto/global%20and%20local%20variables
>
> On 01/06/2012 22:56, Binoyte wrote:
>> Bonjour,
>>
>> je voudrais savoir si il est possible de passer les arguments par
>> référence a une fonction écrite en Scilab. En gros je cherche une
>> analogie à l'écriture C++ suivante :
>>
>> void ma_fonction(struct & parametre)
>> {
>>
>> parametre.propriete = ....;
>>
>> }
>>
>>
>> En Scilab je ne trouve pas trop d'autres solutions que d'écrire :
>>
>> function this = ma_fonction (parametre)
>>
>> this = parametre;
>> this.propriete = .....
>>
>> endfunction
>>
>>
>> Le problème c'est qu'avec la version Scilab on fait d'abord une copie
>> de la variable, ça prend du temps et beaucoup de ressources. D'autant
>> qu'ensuite, dans mon programme, les fonctions sont appelées de
>> nombreuses fois vue que je lance par la suite des fonctions
>> d’optimisation. J'utilise des structures qui décrivent les composants
>> mécaniques d'un système. L’optimisation peut faire varier le nombre
>> de composants. Dans ce cas je ne pense pas pouvoir utiliser les
>> variables globales, en tout cas, pas selon l'exemple ci- après :
>>
>> function ma_fonction (parametre)
>>
>> global parametre;
>>
>> parametre.propriete = .....
>>
>> endfunction
>>
>> //************
>>
>> global Monsieur;
>> Monsieur.Age = 31;
>>
>> ma_fonction(Monsieur);
>>
>> Je vous remercie par avance de vos conseils.
>>
>> Cordialement,
>>
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20120604/f727914f/attachment.htm>
Plus d'informations sur la liste de diffusion users-fr