Le 31/05/2011 16:58, Sigrid.Lehuta@ifremer.fr a écrit :
Salut Camille, le probleme vient de cette ligne : discard = Catch.mults(rejet); ou tu multiplies en effet toute la matrice Catch par un reel.
il faudrait ne multiplier que les cases de la matrice correspondantes au group et métier en question.
je vois deux options, la première je suis pas sure à 100% que ca marche (Eric tu peux venir en soutien là dessus stp?) mais ca serait simple : // reccupere la sous matrice qui correspond au metier et group en cours (si je me plante pas Catch est [str,met,group,zone]): MatrixND catchMet = Catch.getSubMatrix(1,metier); MatrixND catchMetGroup = catchMet.getSubMatrix(2,group); // multiplier cette sous matrice par rejet MatrixND discardMetGroup = catchMetGroup.mults(rejet); // on reccupere l indice correspondant au metier Imet dans la matrice Catch list<Metier> semMet = Catch.getSemantic(1); int Imet = indexOf(metier); // on recolle la matrice multipliee dans discard int[] laOuIlFautLaColler = new int[] {0,Imet,group.getId(),0}; discard.paste(laOuIlFautLaColler,discardMetGroup); bah tu maîtrises bien mieux l'utilisation des matrices que moi :-D désolé, mais là je vais pas t'être d'un grand secours...
-- Éric Chatellier <chatellier@codelutin.com> Tel: 02.40.50.29.28 http://www.codelutin.com