normalisation des lignes d'une matrice sur Matlab
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

normalisation des lignes d'une matrice sur Matlab



  1. #1
    inviteb8477130

    normalisation des lignes d'une matrice sur Matlab


    ------

    Bonjour, j'ai une question concernant la normalisation des matrices sur matlab. j'ai par exemple, la matrice suivante A=[1 2, 3 4]
    et je souhaite normaliser les lignes de ma matrice cela revient à diviser chaque élément par la somme des éléments de la lignes ainsi la somme des éléments de ma matrice normalisée vaudra 1 , par celà j'espère obtenir B=[ 1/(1+2) 2/(1+2), 3/(3+4) 4/(3+4)]; sauf que avec mon programme Matlab je n'obtient pas du tout cela, mon programme est comme suit:

    for i=1:2
    for j=1:2
    A(i,j)=A(i,j)./sum(A(:,i)
    end
    end

    Auriez vous une idée ou une solution à me proposer, svp, c'est très urgent!! Merci par avance!!

    fille désespérée

    -----

  2. #2
    invite6a7988bf

    Re : normalisation des lignes d'une matrice sur Matlab

    Bonjour, voila une fonction qui réponds à ta question. :

    function resultat = normaliser (Matrice)

    v = sum(Matrice,'c'); // vecteur colonne contenant la somme des lignes de la matrice

    resultat = Matrice./(v*ones(Matrice(1,: )));

    endfunction

    Il faut éviter les boucles "for" en Scilab, le logiciel n'est pas efficace avec ça.

    Si néanmoins tu veux persister sur ta lancé, je te conseille de commencer par créer un vecteur avec la somme des lignes de la matrice. Ensuite tu parcours la matrice par ligne uniquement (un seul "for" suffit), et à chaque colonne de la ligne "i", tu divises les composantes de ta matrice par la i-ème composante de ton vecteur somme....

  3. #3
    invite6a7988bf

    Re : normalisation des lignes d'une matrice sur Matlab

    Pardon, je viens de voir les erreurs dans

    A=[1 2, 3 4]

    for i=1:2
    for j=1:2
    A(i,j)=A(i,j)./sum(A(:,i)) // attention n'oublie pas cette parenthèse
    end
    end

    Ta matrice "A" est constament modifier, donc au 1er tour de "i" et 2ème tour de "j" par exemple, on a :

    A=[0.25 2, 3 4]

    et la boucle reprends avec ces valeurs.

    Il faut stocker les résultats dans une autre matrice. Par exemple on pourrait faire :

    B = A
    for i=1:2
    for j=1:2
    B(i,j)=A(i,j)./sum(A(:,i))
    end
    end

    (le résultat recherché est donc B)

    Mais une double boucle est superflue, il y a mieux comme façon de programmer.

  4. #4
    inviteb8477130

    Re : normalisation des lignes d'une matrice sur Matlab

    Merci beaucoup pour votre reponse!!

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Matlab : transformée de Fourier d'une matrice de points à pas irrégulier
    Par invited8d295ee dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 27/03/2009, 16h15
  2. matlab: skeletisation d'une matrice d'image
    Par invitede3386e5 dans le forum Technologies
    Réponses: 0
    Dernier message: 29/12/2008, 14h02
  3. Normalisation des acces à la rom sur le spériphériques USB
    Par invitee17aeca5 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 13/08/2008, 20h54
  4. MATLAB - Les intégrateurs ODE pour la méthode des lignes
    Par invitea078315f dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 13/05/2007, 13h37
  5. operation sur une matrice en matlab
    Par invitee520f70a dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 20/05/2004, 16h27