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

MATLAB Discussion :

Comparaison de deux matrices logiques


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Points : 23
    Points
    23
    Par défaut Comparaison de deux matrices logiques
    Bonjour,

    Je souhaite comparer deux images binaires afin d'obtenir une troisième image représentant l'information se retrouvant dans les 2 matrices en même temps. Je précise que les deux matrices sont de même taille. Actuellement je l'effectue à l'aide de 2 boucles for et je trouve que c'est assez long (Mes images font ~800x600) :

    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
    function image=essai(r,v)
     
    dimension=size(r);
     
    for m=1:dimension(1)
     
        for n=1:dimension(2)
     
            if r(m,n)== v(m,n)
     
                image(m,n)=r(m,n); % Si les deux valeurs sont égales, on garde la valeur (0 ou 1)
            else
     
                image(m,n)= 1; % Sinon, on remplace par du blanc
     
            end
        end
    end
    Existe-il une fonction Matlab permettant de le faire directement et surtout plus rapidement ? J'ai regardé du côté des fonctions "all", "ismember" et "intersect" (vues sur d'autres discussions), mais cela ne correspond pas à ce que je cherche.

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Je suis pas sûr d'avoir tout bien compris mais est-ce que ca pourrait correspondre à ce que tu cherches:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    % Initialisation de la matrice de sortie
    mat_out = ones(size(r));
     
    mat_out(r==v) = r(r==v);
    Bonne journée,
    Duf

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Points : 23
    Points
    23
    Par défaut
    Merci, c'est exactement ce qu'il me fallait. J'y avais pas pensé.

    Résultats identiques et nettement plus rapide.

    Merci et bonne journée

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

Discussions similaires

  1. comparaison de deux matrices en ocaml
    Par savezoboss dans le forum Caml
    Réponses: 3
    Dernier message: 06/12/2013, 11h00
  2. Erreur de comparaison de deux matrices
    Par proc02 dans le forum Débuter avec Java
    Réponses: 13
    Dernier message: 11/05/2013, 16h30
  3. Comparaison de deux matrices de char
    Par proc02 dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 10/05/2013, 15h14
  4. [Débutant] Comparaison de deux matrices
    Par niepoc dans le forum MATLAB
    Réponses: 4
    Dernier message: 04/06/2008, 16h12
  5. Comparaison de deux matrices sans boucle for
    Par zicos dans le forum MATLAB
    Réponses: 8
    Dernier message: 04/05/2007, 18h16

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