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 :

Extraction de Matrice 2d à partir d'une matrice 3D


Sujet :

MATLAB

  1. #1
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut Extraction de Matrice 2d à partir d'une matrice 3D
    Bonjour

    A partir d'une matrice 3D nommée "a" :
    je cherche à extraire une matrice 2D qui correspond à la deuxième position dans les trois directions (projection)

    1. m1 correspond à une matrice lignes, colonnes de la 02 couche (7x5) de a
    2. m2 correspond à une matrice colonnes, couches de la 02 lignes (5x3) de a
    3. m3 correspond à une matrice lignes, couches de la 02 colonne (7x3) de a

    Pour m1 :
    Logiquement pour m2 :
    Matlab affiche :
    >> a(2,:,: )

    ans(:,:,1) =

    0.9058 0.2785 0.9706 0.4218 0.0357


    ans(:,:,2) =

    0.7431 0.0318 0.6948 0.3816 0.4456


    ans(:,:,3) =

    0.6797 0.9597 0.2551 0.5472 0.2543
    Moi je veux une matrice 2D avec 5 lignes et 03 colonnes. Alors j'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    >> m2=a(2,:,:);
    >> squeeze(m2)
     
    ans =
     
        0.9058    0.7431    0.6797
        0.2785    0.0318    0.9597
        0.9706    0.6948    0.2551
        0.4218    0.3816    0.5472
        0.0357    0.4456    0.2543
    Es ce que c'est juste ?

    Même chose pour m3
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  2. #2
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    J'explique plus,

    Cette matrice 3D correspond à un volume IRM 3D, donc un espace oXYZ.

    Je cherche à retrouver les trois espaces comme suit : oXY, oXZ, oYZ en prenant à chaque fois la deuxième coupe !!

    la logique veut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    m1 = a(:,:,2) ; 
    m2 = a(2,:,:) ; 
    m3 = a(:,2,:) ;
    cependant, m2 et m3 ne sont pas des matrice 2D !!!
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  3. #3
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Une matrice (en anglais: matrix) ne peut pas être 3D. Ce que tu manipules, ce sont probablement des tableaux (en anglais: array).
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    il faut effectivement utiliser squeeze pour enlever les dimensions unitaires ( traduction hasardeuse de "singleton dimensions" de la doc) potentiellement présentes dans ton résultat.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

Discussions similaires

  1. [Débutant] creation plusieurs sous matrice a partir d'une matrice
    Par hakimetudiant dans le forum MATLAB
    Réponses: 5
    Dernier message: 11/05/2015, 14h21
  2. Réponses: 3
    Dernier message: 27/05/2013, 10h23
  3. Comment obternir une matrice triangulaire à partir d'une matrice quelconque ?
    Par membreComplexe12 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 13/11/2011, 22h05
  4. Réponses: 5
    Dernier message: 23/01/2009, 08h13
  5. Réponses: 4
    Dernier message: 01/03/2008, 15h04

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