Bonjour à tous,
J'essaie actuellement de traduire mon code matlab de simulation de cycle d'hystérésis en python pour une meilleure performance et pour le faire tourner en mpi.
Ce code contient une ligne dans laquelle j'extrais les indices des cases d'un vecteur (ou d'une liste) qui valident la condition que j'impose. Cette fonction en matlab est la fonction find, voici la ligne de code:
Change = find((Hysteron(2,:) == 1 & Htot <= -Hysteron(4,:)) | (Hysteron(2,:) == -1 & Htot >= Hysteron(4,:)) | (Hysteron(3,:)== 1000000 & Htot > -Hysteron(4,:) & Htot < Hysteron(4,:) & abs(Hysteron(1,:)-Htot./Hysteron(4,:)) > 0.0001));
Ici la fonction find renvoie les indices des colonnes de Hysteron (= un tableau à 7 lignes et beaucoup de colonnes) qui satisfont les conditions imposées.
En l’occurrence cette commande est très pratique car elle m'épargne une boucle sur le vecteur Hysteron, qui n'est pas énorme mais qui est balayé plusieurs centaines de fois lors de la simulation. Je précise que ce qui m’intéresse est d'avoir les indices des cases qui valide la condition à l’intérieur de find stockés dans une liste.
Connaissez vous un équivalent python à cette fonction find?
Merci beaucoup.
Bonne journée.
Partager