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 :

Additionner les elements d'une matrice en diagonale


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 20
    Points : 22
    Points
    22
    Par défaut Additionner les elements d'une matrice en diagonale
    Bonsoir á tous; mes vœux les meilleurs de santé, de bonheur pour cette année 2014.

    Ouf je commence cette année avec un Tp qui m a assez cassé la tête, je cherche un moyen pour additionner les éléments d une matrice. seulement cette addition devrait s effectuer en diagonale comme suit:

    voici la matrice de départ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    M=(a11  a12  a13  a14;
         a21  a22  a23  a24;
         a31  a32  a33  a34;
         a41  a42  a43  a44)
    Après l addition nous aurions une matrice N tel que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    N =(  a11;
            a21 + a12; 
            a31+ a22 + a13 ; 
            a41 + a32 + a23 + a14;
            a42 + a33 + a24; 
            a43+ a34;
            a44)
    Je n ai pas un début de solution, j ai réfléchi, et réfléchi, rien! j aimerais savoir s il existe une fonction sous matlab capable de faire une telle addition; ou si possible si quelqu un peut me donner un algorithme pour effectuer un tel calcul.

    Merci d avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Une fonction qui peut t'aider :

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 20
    Points : 22
    Points
    22
    Par défaut Ouuuuuuuuuuuh
    toujours pas de début de solution

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    M = [1     5     9    13
         2     6    10    14
         3     7    11    15
         4     8    12    16 ];
    >> diag(flipud(M),-1)
     
    ans =
     
         3
         6
         9
    Ça vient mieux comme ça ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 20
    Points : 22
    Points
    22
    Par défaut Exemple illustractif
    voici un exemple pour illustrer mon exercice.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    M = [
         1     5     9    13
         2     6    10    14
         3     7    11    15
         4     8    12    16 ]
     
    N = [
          1      
          (2 +5)   
          (3 +6+9)
          (4 +7+10+13)
          (8 + 11+14)
          (12+15)
          16 ]
    donc la matrice N donnera:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    N = [1;7;18;34;33;27;16]

  6. #6
    Invité
    Invité(e)
    Par défaut
    J'avais compris dès le dèbut, merci.

    Maintenant est-ce que TOI tu as compris que j'ai mis en évidence comment prendre les composantes du 3ème élément de N ?
    À toi maintenant de généraliser à tous ses éléments.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 20
    Points : 22
    Points
    22
    Par défaut Merci... Merci je t ai compris
    J ai compris maintenant ta demarche, tu donnes jamais du poisson.. tu donnes juste une canne, un hamecon. Merci ...je crois que maintenant je peux debuter á programmer quelque codes

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 20
    Points : 22
    Points
    22
    Par défaut La solution

    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
    close all;
    clear all;
    clc;
     
    M = [1     5     9    13
         2     6    10    14
         3     7    11    15
         4     8    12    16 ]
    [y x] = size(M);
    nd =(x+y)-1; %le nombre de diagonales à sélectionner
    N = zeros(nd,1); % la matrice solution 
    i = floor(0.5*nd)
    for k = i:-1:-i
        N(nd,1) = sum(diag(flipud(M),k));
        nd = nd-1;
    end

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

Discussions similaires

  1. Rechercher les element d'une liste dans une autre liste
    Par fessebleu dans le forum Langage
    Réponses: 30
    Dernier message: 24/04/2006, 21h23
  2. recuperer tous les elements d'une JList
    Par ejaub dans le forum Composants
    Réponses: 2
    Dernier message: 01/02/2006, 23h12
  3. padding entre les elements d'une structure
    Par chacal dans le forum Réseau
    Réponses: 5
    Dernier message: 18/11/2005, 08h56
  4. Récupérer les élements d'une structure ...
    Par Franck.H dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 17/10/2005, 15h48
  5. :xRecuperer les elements d'une listview
    Par hook85 dans le forum C++Builder
    Réponses: 2
    Dernier message: 30/03/2005, 20h19

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