Bonjour,<br><br>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 : <br><br><span style="font-family:courier new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)">void ma_fonction(struct & parametre) </span><br style="font-family:courier new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)">
<span style="font-family:courier new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)"><span style></span>{</span><br style="font-family:courier new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)">
<br style="font-family:courier new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)"><span style="font-family:courier new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)"> parametre.propriete = ....;</span><br style="font-family:courier new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)">
<br style="font-family:courier new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)"><span style="font-family:courier new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)">}</span><br style="color:rgb(0,0,153);background-color:rgb(255,255,255)">
<br><br>En Scilab je ne trouve pas trop d'autres solutions que d'écrire : <br><br><span style="font-family:courier new,monospace;color:rgb(51,51,153)">function this = ma_fonction (parametre)</span><br style="font-family:courier new,monospace;color:rgb(51,51,153)">
<br style="font-family:courier new,monospace;color:rgb(51,51,153)"><span style="font-family:courier new,monospace;color:rgb(51,51,153)"> this = parametre;</span><br style="font-family:courier new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier new,monospace;color:rgb(51,51,153)"> this.propriete = .....</span><br style="font-family:courier new,monospace;color:rgb(51,51,153)"><br style="font-family:courier new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier new,monospace;color:rgb(51,51,153)">endfunction</span><br><br><br>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 :<br>
<br><span style="font-family:courier new,monospace;color:rgb(51,51,153)">function ma_fonction (parametre)</span><br style="font-family:courier new,monospace;color:rgb(51,51,153)"><span style="font-family:courier new,monospace;color:rgb(51,51,153)"> </span><br style="font-family:courier new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier new,monospace;color:rgb(51,51,153)"> global parametre;</span><br style="font-family:courier new,monospace;color:rgb(51,51,153)"><br style="font-family:courier new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier new,monospace;color:rgb(51,51,153)"> parametre.propriete = .....</span><br style="font-family:courier new,monospace;color:rgb(51,51,153)"><br style="font-family:courier new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier new,monospace;color:rgb(51,51,153)">endfunction</span><br style="font-family:courier new,monospace;color:rgb(51,51,153)"><br style="font-family:courier new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier new,monospace;color:rgb(51,51,153)">//************</span><br style="font-family:courier new,monospace;color:rgb(51,51,153)"><br style="font-family:courier new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier new,monospace;color:rgb(51,51,153)">global Monsieur;</span><br style="font-family:courier new,monospace;color:rgb(51,51,153)"><span style="font-family:courier new,monospace;color:rgb(51,51,153)">Monsieur.Age = 31;</span><br style="font-family:courier new,monospace;color:rgb(51,51,153)">
<br style="font-family:courier new,monospace;color:rgb(51,51,153)"><span style="font-family:courier new,monospace;color:rgb(51,51,153)">ma_fonction(Monsieur);</span><br><br>Je vous remercie par avance de vos conseils.<br>
<br>Cordialement,<br><br>