j'ai fais une règle pour pouvoir mettre une ogive de trie pour le calcul des rejets en m'appuyant sur la règle déjà existante "taille min".
Je n'arrive pas à indicer la matrice "discard" pour multiplier chaque valeurs correspondant au groupe de taille (à chaque tour de la boucle for) par le double "rejet" qui est également dépendant du groupe d'age.
Actuellement, toute la matrice "discard" est multiplié par "rejet". Vous pouvez m'aider pour coder la multiplication ?
PopulationMonitor popMon = context.getPopulationMonitor();
SiMatrix siMatrix = SiMatrix.getSiMatrix(context);
List<Population> pops = siMatrix.getPopulations(date);
for (Population pop : pops) {
if (pop.getSpecies().equals(param_species)) {
///if (popMon.getDiscard(date, pop) == null) {
MatrixND Catch = popMon.getCatch(pop).copy();
MatrixND discard = popMon.getCatch(pop).copy();
log.info("metier_selectionnes" + metier.getName());
List<PopulationGroup> groups = pop.getPopulationGroup();
for (PopulationGroup group : groups) {
log.info("ICI");
double trie = 1/(1+Math.exp(-(group.getLength()-param_Retention_L50)/param_Retention_slope));
log.info("tri" + trie);
double rejet = 1-trie;
log.info("rejet" + rejet);
discard = Catch.mults(rejet);
}
discard.setName(
ResultName.MATRIX_DISCARDS_PER_STR_MET_PER_ZONE_POP);
log.info("discard" + discard);
popMon.addDiscard(date, pop, discard);