Demande d'un nouveau résultats LbarTotal
Est ce possible de calculer Lbar total, c'est à dire non plus par zone mais sur toute la pop en plus du Lbar par zone ? Merci
On 12/06/2015 12:04, Sigrid Lehuta wrote:
Est ce possible de calculer Lbar total, c'est à dire non plus par zone mais sur toute la pop en plus du Lbar par zone ? Est-ce simplement un sumOverDim(0) sur Lbar ? Donc c'est une matrice à une seule dimension.
Faut-il le recalculer ou peut-on faire une dépendance de résultat sur Lbar ? Autrement dit, si on demande Lbar total, Lbar sera automatiquement calculé et stocké également. -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Salut non ca ne peut pas etre calculé à partir du Lbar actuel ou plutot c'est plus simple de repartir de N. Ca retourne un double : Lbar La seule dimension de la matrice c'est TimeStep double Lbar; MatrixND LbarMatrix = N.copy(); Lbar = Lbar.sumOverDim(1).reduceDims(1); double ab = Lbar.sumAll(); LbarMatrix.setName(ResultName.MATRIX_LBAR); List<PopulationGroup> groups = pop.getPopulationGroup(); for (PopulationGroup group : groups) { LbarMatrix.setValue(group, LbarMatrix.getValue(group) * group.getLength()); } LbarMatrix = LbarMatrix.sumOverDim(0); // Somme sur les groupes LbarMatrix = LbarMatrix.reduce(); Lbar = LbarMatrix / ab; Le 23 juin 2015 16:53, Eric Chatellier <chatellier@codelutin.com> a écrit :
On 12/06/2015 12:04, Sigrid Lehuta wrote:
Est ce possible de calculer Lbar total, c'est à dire non plus par zone mais sur toute la pop en plus du Lbar par zone ? Est-ce simplement un sumOverDim(0) sur Lbar ? Donc c'est une matrice à une seule dimension.
Faut-il le recalculer ou peut-on faire une dépendance de résultat sur Lbar ? Autrement dit, si on demande Lbar total, Lbar sera automatiquement calculé et stocké également.
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-devel
On 24/06/2015 17:04, Sigrid Lehuta wrote:
Salut non ca ne peut pas etre calculé à partir du Lbar actuel ou plutot c'est plus simple de repartir de N.
Ca retourne un double : Lbar La seule dimension de la matrice c'est TimeStep Ca doit forcement être une Matrice (de dimension 1). On a une matrice par pas de temps.
double Lbar; MatrixND LbarMatrix = N.copy(); Lbar = Lbar.sumOverDim(1).reduceDims(1); double ab = Lbar.sumAll();
Donc on a une premiere reduction sur les zones (LbarMatrix et non Lbar)
LbarMatrix.setName(ResultName.MATRIX_LBAR); List<PopulationGroup> groups = pop.getPopulationGroup();
for (PopulationGroup group : groups) { LbarMatrix.setValue(group, LbarMatrix.getValue(group) * group.getLength()); }
LbarMatrix = LbarMatrix.sumOverDim(0); // Somme sur les groupes LbarMatrix = LbarMatrix.reduce();
Ici, on a une deuxieme reduction sur les groupes.
Lbar = LbarMatrix / ab;
Ici, une Matrice/double ca n'a pas de sens. Si je remplace par LbarMatrix = LbarMatrix.divs(ab); // division par un scalaire, c'est correct ? c'est la meme chose que LbarMatrix.setValue(LbarMatrix.getValue(0) / ab); dans ce cas là -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Le 25 juin 2015 12:48, Eric Chatellier <chatellier@codelutin.com> a écrit :
Salut non ca ne peut pas etre calculé à partir du Lbar actuel ou plutot c'est
On 24/06/2015 17:04, Sigrid Lehuta wrote: plus
simple de repartir de N.
Ca retourne un double : Lbar La seule dimension de la matrice c'est TimeStep Ca doit forcement être une Matrice (de dimension 1). On a une matrice par pas de temps.
yep une matrice a 0 dimension (1 valeur par pas de temps comme Ftotale)
double Lbar; MatrixND LbarMatrix = N.copy(); Lbar = Lbar.sumOverDim(1).reduceDims(1);
double ab = Lbar.sumAll(); Donc on a une premiere reduction sur les zones (LbarMatrix et non Lbar)
ou boulette (LbarMatrix qui est une copy de N, on somme N par groupe) LbarMatrix n a plus qu'une dim (group)
LbarMatrix.setName(ResultName.MATRIX_LBAR); List<PopulationGroup> groups = pop.getPopulationGroup();
for (PopulationGroup group : groups) { LbarMatrix.setValue(group, LbarMatrix.getValue(group) * group.getLength()); }
LbarMatrix = LbarMatrix.sumOverDim(0); // Somme sur les groupes LbarMatrix = LbarMatrix.reduce();
Ici, on a une deuxieme reduction sur les groupes.
c'est ca apres multiplication par la longueur, du coup la matrice a 0 dimensions : 1 seule valeur, on peut peut etre le caster en scalaire ? mais les solutions en dessous me paraissent correctes aussi
Lbar = LbarMatrix / ab;
Ici, une Matrice/double ca n'a pas de sens.
(!/*%## language orienté objet...)
Si je remplace par LbarMatrix = LbarMatrix.divs(ab); // division par un scalaire, c'est correct ?
je pense oui
c'est la meme chose que LbarMatrix.setValue(LbarMatrix.getValue(0) / ab); dans ce cas là
oui tres bien aussi ca me parait pareil Merci !
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-devel
participants (2)
-
Eric Chatellier -
Sigrid Lehuta