Simulation qui s'arrête à Janvier 0
Rebonjour, J'ai tenté de faire tourner une simulation après avoir corrigé DefaultSimulator_F et SiMatrix, mais la simulation s'arrête à Janvier0. Je n'arrive pas à voir avec le debug quel est le problème, juste qu'apparemment il vient des lignes 1609 de SiMatrix et 506 de DefaultSimulator_F. Je ne trouve pas ce qui peut clocher à ces lignes à part peut-être dans les List[] et String[] laissés vide lors de la création de la matrice tfmMatrix. Help ? Loïc
Rebonjour,
J'ai tenté de faire tourner une simulation après avoir corrigé DefaultSimulator_F et SiMatrix, mais la simulation s'arrête à Janvier0.
Je n'arrive pas à voir avec le debug quel est le problème, juste qu'apparemment il vient des lignes 1609 de SiMatrix et 506 de DefaultSimulator_F. Je ne trouve pas ce qui peut clocher à ces lignes à part peut-être dans les List[] et String[] laissés vide lors de la création de la matrice tfmMatrix. Après c'est tout un art de lire les traces d'erreur :) : Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 at org.nuiton.math.matrix.AbstractMatrixND.setDimensionName(AbstractMatrixND.java:275) at org.nuiton.math.matrix.AbstractMatrixND.<init>(AbstractMatrixND.java:157) at org.nuiton.math.matrix.MatrixNDImpl.<init>(MatrixNDImpl.java:78) at org.nuiton.math.matrix.MatrixFactory.create(MatrixFactory.java:147) at
Le 05/04/2012 14:07, Loic GASCHE a écrit : scripts.SiMatrix.aw$original$_AW_$TotalFishingMortality$_AW_$scripts_SiMatrix(SiMatrix.java:1609) C'est bien la ligne 1609 qui est en cause. Ca se devine pas là mais t'as matrice n'a aucune dimension: MatrixND tfmMatrix = MatrixFactory.getInstance().create( ResultName.MATRIX_TOTAL_FISHING_MORTALITY, new List[]{}, new String[]{n_("")}); Il faut que tu reflechissent a ce que tu veux en sortie. Ftot est définit pour une zone ? et un group de population ? Il faut donc que tu définissent ensuite la matrice avec les zones de la population ? et les groupes de la population ? Ex: MatrixND tfmMatrix = MatrixFactory.getInstance().create( ResultName.MATRIX_TOTAL_FISHING_MORTALITY, new List[]{pop.getPopulationZone(), pop.getPopulationGroup()}, new String[]{n_("Zones"), n_("Groups")}); Et ensuite tu enregistre le ftot dans la matrice pour une zone et un group donné: tfmMatrix.setValue(zone, group, ftot); -- Éric Chatellier <chatellier@codelutin.com> Tel: 02.40.50.29.28 http://www.codelutin.com
participants (2)
-
Eric Chatellier -
Loic GASCHE