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

Python Discussion :

adapter une fonction getMax pour une matrice de valeur Booléenne


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Femme Profil pro
    étudiante chercheuse
    Inscrit en
    Septembre 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante chercheuse
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 274
    Par défaut adapter une fonction getMax pour une matrice de valeur Booléenne
    Bonjour,
    comment je peux adapter cette solution pour une matrice de valeur Booléenne s'il vous plais je veux appliquer le ET logique si True and False donne False :
    c'est à dire [CODE]pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    mat=
    [[False, False, False, False],
           [False, False, False, False],
           [False, False, False, False],
           [False, False, False, False],
           [False, True, False, False],
           [False, False, False, False],
           [False, False, False, False],
           [False, False, True, False],
           [False, False, False, False],
           [False, False, False, False],
           [False, False, False, False],
           [True, True, False, False],
           [False, False, False, False],
           [False, False, False, False],
           [False, False, True, False],
           [False, False, False, True],
           [False, False, False, False]]))
    je veux adapter le code de cette fonction get Max
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    def isIterable(n):
        try:
            if isinstance(n, str): raise TypeError("%s is not iterable" % n)
            iter(n)
        except TypeError as e:
            return False
        # try
        return True
    #isIterable
     
    def getMax(mat, n):
        if isIterable(n):
            return tuple(np.concatenate([ mat[i-1:i-1+1] for i in n]).max(axis=0))
        else :
            return tuple(mat[n-1])
    getMax fonctionneinitialement sur une matrice
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    mat = [
    ...     [30, 1, 5, 1],
    ...     [47, 2, 2, 2],
    ...     [12, 3, 3, 3],
    ...     [0, 18, 0, 0],
    ...     [0, 0, 14, 0],
    ...     [0, 0, 0, 15],
    ...     [0, 50, 0, 0],
    ...     [0, 38, 0, 0],
    ...     [0, 0, 23, 0],
    ...     [0, 0, 28, 0],
    ...     [0, 0, 6, 0],
    ...     [7, 0, 0, 0],
    ...     [15, 0, 0, 0],
    ...     [0, 0, 0, 8],
    ...     [0, 68, 0, 0],
    ...     [0, 0, 0, 21],
    ...     [0, 121, 0, 0],
    ... ]

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Pour faire un ET logique à la place du calcul du max... il n'y a qu'à.
    Et éventuellement montrer les difficultés que çà (vous) pose.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre très actif
    Femme Profil pro
    étudiante chercheuse
    Inscrit en
    Septembre 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante chercheuse
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 274
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Pour faire un ET logique à la place du calcul du max... il n'y a qu'à.
    Et éventuellement montrer les difficultés que çà (vous) pose.

    - W
    je sais pas si c'est logique mais lorsque j'ai changer le max par min ça donne le résultat de et logique exactement
    voilàa ce que j'ai esayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    def isIterable(n):
        try:
            if isinstance(n, str): raise TypeError("%s is not iterable" % n)
            iter(n)
        except TypeError as e:
            return False
        # try
        return True
    #isIterable
     
    def getMax(mat, n):
        if isIterable(n):
            return tuple(np.concatenate([ mat[i-1:i-1+1] for i in n]).min(axis=0))
        else :
            return tuple(mat[n-1])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    mat= [
        [True, False, True, True],
        [True, False, True, True],
        [True, False, True, True],
        [True, False, True, True],
        [True, False, False, True],
        [True, False, True, False],
        [False, False, True, True],
         ]
    n= [7,5]
    print (getBool(mat, n))

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par FATENMRABET Voir le message
    je sais pas si c'est logique mais lorsque j'ai changer le max par min ça donne le résultat de et logique exactement
    voilàa ce que j'ai esayer
    C'est logique puisque True = 1 et False = 0 mais il est préférable d'utiliser la fonction qui va bien car quand vous allez relire le code, vous aurez des difficultés à comprendre pourquoi çà marche.
    note: la somme fonctionne, le produit aussi.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Concaténer des cellules de strings avec une matrice de valeurs
    Par procrastination dans le forum MATLAB
    Réponses: 3
    Dernier message: 16/10/2014, 13h25
  2. Adapter une matrice pour créer un graphe "nuage de point"
    Par linpro.lalaland dans le forum MATLAB
    Réponses: 6
    Dernier message: 27/06/2014, 11h01
  3. Réponses: 1
    Dernier message: 02/02/2012, 17h22
  4. code pour le calcul d'une matrice de valeur
    Par sihamus87 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/05/2011, 16h23
  5. [XL-2003] Fonction Min pour plus de 30 valeurs
    Par Bubale dans le forum Excel
    Réponses: 7
    Dernier message: 14/04/2010, 18h08

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