IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

equivalent python de la fonction matlab find


Sujet :

Calcul scientifique Python

  1. #1
    Candidat au Club
    Homme Profil pro
    doctorant
    Inscrit en
    Juillet 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : doctorant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 2
    Points : 3
    Points
    3
    Par défaut equivalent python de la fonction matlab find
    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:

    Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Points : 752
    Points
    752
    Par défaut
    Bonjour,


    Je ne connais pas matlab et donc pas la fonction find. Toutefois, si le but est de connaitres les indices qui valent "True" dans un tableau booléen, il y a la fonction "numpy.where". Cela donnerait quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import numpy as np
    Change = np.where(
         (Hysteron[1,:] == 1 & Htot <= -Hysteron[3,:]) | 
         (Hysteron[1,:] == -1 & Htot >= Hysteron[3,:]) |
         (Hysteron[2,:] == 1000000 & Htot > -Hysteron[3,:] & Htot < Hysteron[3,:] & abs(Hysteron[0,:]-Htot./Hysteron[3,:]) > 0.0001))[0]

  3. #3
    Candidat au Club
    Homme Profil pro
    doctorant
    Inscrit en
    Juillet 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : doctorant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    C'est exactement ce que je cherchais!

    Merci beaucoup!

    Bonne fin de journée

  4. #4
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Impossible de corriger cette bouillie.
    Édite ton message et utilise les balises de code (#).
    Le sujet a à voir avec le titre ? Sinon, ouvre un nouveau fil.
    Pas d'aide par mp.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction MATLAB sous Python
    Par robinooo dans le forum MATLAB
    Réponses: 0
    Dernier message: 18/07/2017, 13h31
  2. Réponses: 0
    Dernier message: 16/01/2014, 12h31
  3. Fonction python équivalente à la fonction Fir1 de matlab
    Par frisou65 dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 29/09/2011, 08h06
  4. Equivalent de fonctions Matlab
    Par Sylvain62350 dans le forum C
    Réponses: 4
    Dernier message: 20/04/2006, 16h10
  5. Inclure des fonction matlab sous visual c++
    Par petdelascar dans le forum MFC
    Réponses: 3
    Dernier message: 21/11/2005, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo