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 :

Diagonales d'une matrice


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2013
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Diagonales d'une matrice
    bonjour tout le monde je veux extraire les deux diagonales d'une matrice carré(4*4) a une matrice (2*4)
    exemple
    Nom : Sans titre.png
Affichages : 3311
Taille : 5,0 Ko
    je sais pour la premier diagonale c'est la fonction diag mais pour le deuxieme es qu'il y'a une fonction
    merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >> M = reshape(1:16, 4, []).';
    >> diag(flipud(M))
     
    ans =
     
        13
        10
         7
         4
    Ou ceci en manipulant les indices :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >> M(1:size(M,1)+1:end)
     
    ans =
     
         1     6    11    16
     
    >> M(size(M,1):size(M,1)-1:end-1)
     
    ans =
     
        13    10     7     4

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2013
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Merci pour votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A=[ diag(M)' ; diag(flipud(M))' ]

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Tu peux économiser un opérateur de transposition en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A = [diag(M) diag(flipud(M))].';
    Voir également : Quelle est la différence entre ' et .' ?

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

Discussions similaires

  1. afficher la diagonale d'une matrice carrée
    Par HAM_10 dans le forum C++
    Réponses: 4
    Dernier message: 29/11/2016, 11h16
  2. Rendre la diagonale d'une matrice nulle
    Par fatma.dammak dans le forum MATLAB
    Réponses: 2
    Dernier message: 17/06/2015, 19h46
  3. Réponses: 2
    Dernier message: 26/03/2013, 16h48
  4. Remplir la diagonale d'une matrice sans boucle FOR-END
    Par francois_S dans le forum MATLAB
    Réponses: 3
    Dernier message: 30/03/2010, 08h32
  5. Mettre la diagonale d'une matrice à 0
    Par yous18 dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 14/12/2007, 23h08

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