Re-bonjour,<br>j'ai reussi à contourner le souci des variables en en creant des nouvelles, pas super propre mais bon ca marche.<br>Par contre j'ai un nouveau problème:<br><br>Voila ce que je fais jusqu'a present. L'objectif est de remettre dans la population les captures excédentes par rapport au TAC.<br>
<br>1)Je recupère la matrice des captures, que j'appelle capt, en sommant sur les metiers et les strategies.J'utilise la fonction suivante :<br><br><b>    public static MatrixND getTotalCatchinN(SimulationContext context, Species species, Date date) {<br>
     MatrixND result2=null;<br>        for (Population pop : species.getPopulation()) {<br>              MatrixND mat = context.getPopulationMonitor().getCatch(pop);<br>               mat = mat.sumOverDim(0); // sum over Strategies<br>
              mat = mat.sumOverDim(1); // sum over metiers<br>             result2= mat;<br>        }<br>        return result2;<br>    }<br>}</b><br><br>J'ai verifié avec le log, ca marche et me ressort bien la matrice désirée.<br>
<br>A partir de cette matrice, je calcule une nouvelle matrice qui contiendra les captures à transférer dans la population,propATransferer est la proportion de captures non désirées :<br><b><br> MatrixND transfertCapt=capt.mults(propATransferer);</b><br>
<br>Vérifié aussi, ca me ressort bien les valeurs voulues.<br><br>Maintenant je veux additionner les effectifs actuels de la population avec cette matrice de transfert :<br>On récupère les effectifs actuels :<br><br><b> PopulationMonitor popMon = context.getPopulationMonitor();<br>
 MatrixND eff = popMon.getN(param_pop);</b><br><br>On additionne :<br><b>MatrixND effCorriges=eff.add(transfertCapt) ;</b><br><br>Ca fonctionne, mais apres verification les valeurs obtenues sont incohérentes. <br><br>En fait il semble que si on se refere aux matrices telles qu'on peut les visualiser dans l'interface d'isis.<br>
La fonction <b>getN</b> retourne les valeurs lues dans le sens vertical. <b>(zone par zone)</b><br>La fonction <b>getCatch</b> retourne les valeurs lues dans le sens horizontal <b>(groupe par groupe)</b>.<br><br>L'opération fonctionne car les dimensions restent les mêmes mais évidemment les résultats ne sont pas attendus.<br>
Il faudrait reformater une des matrices (la matrice des captures probablement) pour que l'ordre des valeurs collent à ceux des effectifs. Mais je ne sais pas comment faire, surement la parcourir avec iterator etc mais je bloque la dessus et mon planning est assez serré :(<br>
<br>Sinon, une fois ce problème dépassé, il faut que je remplace les effectifs dans isis par mes nouveaux effectifs calculés, fonction <b>setN()</b> ?<br>Par contre, pour remplacer les captures, je n'ai pas trouvé de fonction, est-ce possible ?<br>
<br>Merci,j'espère avoir été clair<br>Benoit<br><br><br><div class="gmail_quote">2010/7/31 Benoit Archambault <span dir="ltr"><<a href="mailto:benarcha@gmail.com" target="_blank">benarcha@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<b>Coucou</b><br><br><div class="gmail_quote">2010/7/29  <span dir="ltr"><<a href="mailto:Sigrid.Lehuta@ifremer.fr" target="_blank">Sigrid.Lehuta@ifremer.fr</a>></span><div><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">



Si j'ai bien compris tu déclare la variable en protected...<br>
(c est bien ca les "informaticiens"?)<br>
<br></blockquote></div><div><br><b>Ca n'a pas l'air de fonctionner ? J'ai toujours un "illegal start of expression", ca m'enerve car j'avais deja eu le probleme et trouvé la solution mais je bloque là !</b><br>



<br> </div><div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
pour reinjecté la pop, je pense qu'avec la regle tacPoids, c est deja écrit pour les rejets en post action. Il y a propSurvie, la proportion des rejets qui survie t as qu a mettre 100% !<br></blockquote></div><div><br>


<br>
<b>Merci pour l'info, ca va bien m'aider</b><br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
<br>
A+<br></blockquote></div><br>
</blockquote></div><br>