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 :

Programme de sommes cumulées


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 202
    Par défaut Programme de sommes cumulées
    Bonjour, je cherche à faire un programme de sommes cumulées, et j'ai un peu de mal...

    En fait il s'agit de prendre ma matrice de données.
    Sur ces données je fais la moyenne, valeur de référence que j'appelle k
    Puis j'otes cette valeur de référence à toutes les lignes de la colonne.
    Enfin, le but est d'obtenir une matrice de données où je cumule les différences (valeur-référence), où je pensais utiliser la fonction cumsum....

    Merci du coup de pouce

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 202
    Par défaut
    Bon voila ce que j'ai pour l'instant....

    Donc c'est très bien pour faire les sommes cumulées sur une colonne....
    Le pb, c'est que mes matrices comportent plusieurs colonnes, et ce que je veux faire, c'est depuis une matrice de mes données brutes, obtenir la matrice des sommes cumulées (en conservant notamment mes trois premières colonnes qui sont les observations...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    clear all
    close all
     
    load X.mat
     
    k=nanmean(X(:,1));
    cumul=(X(:,1)-k);
    cumul2=cumsum(cumul,1)

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Si on parle bien de la même chose, tu as une matrice X telle que :

    Les trois premières colonnes ne doivent pas être modifiées

    Ensuite, tu fais la moyenne des autres colonnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    M=mean(X(:,4:end))
    Ensuite tu soustraits à chaque ligne la valeur correspondante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for n=4:size(X,2)
     
       X(:,n)=X(:,n)-M(n-3);
     
    end
    Et la... je suis perdu

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 202
    Par défaut
    Donc oui, après à chacune de mes colonnes, je retire la valeur moyenne de chaque colonne...
    Càd, qu'à chaque valeur de la colonne 4, je retire la moyenne de la colonne 4,
    à chaque valeur de la colonne 5, je retire la moyenne de la colonne 5...et ainsi de suite jusqu'à end.

    Puis après, je souhaite additionner (faire une cumsum) chaque ligne de chaque colonne.
    Ainsi dans ma colonne 4, ma première ligne ne bouge pas, puis la deuxième ligne cspd à n+(n+1)....

    Ptètre un exemple de ce que j'ai fait sur une colonne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    X=[rand(20,1)]
    k=nanmean(X(:,1));
    cumul=(X(:,1)-k);
    cumul2=cumsum(cumul,1)
    Donc là, j'arrive bien à avoir mes résultats pour une colonne...mais comment élargir ce programme à un calcul sur une matrice de 15 colonnes par exemple???

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Pourquoi ne pas faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    X=[zeros(5,3) rand(5)]
     
    M=mean(X(:,4:end));
     
    for n=4:size(X,2)
     
       X(:,n)=X(:,n)-M(n-3)
    %    X(:,n)=cumsum(X(:,n))
     
    end
     
    X(:,4:end)=cumsum(X(:,4:end))

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 202
    Par défaut
    J'ai pas l'impression que ce soit vraiment ce que je veux.
    Je suis donc parti sur une autre piste

    Pour cela j'ai besoin d'une petite aide.

    Pourriez vous me dire comment multiplier une matrice de un que j'ai généré par un vecteur.

    Ma matrice ones est de dimension 235*13 et mon vecteur est 1*13

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 202
    Par défaut
    Ben un grand merci, ca y est mon programme de sommes cumulées marche pour toute ma matrice...ça été long et laborieux, mais heureusement que tu étais là....

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

Discussions similaires

  1. somme cumulative su BO reporter
    Par cricri2607 dans le forum Débuter
    Réponses: 4
    Dernier message: 26/11/2008, 11h40
  2. Somme cumulative sur 12 mois glissant
    Par Ptij16 dans le forum Deski
    Réponses: 6
    Dernier message: 13/07/2007, 10h24
  3. somme cumulative sql
    Par marcdonaldwilfried dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/04/2007, 12h25
  4. ! Somme Cumulative en SQL !
    Par dom283 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/03/2007, 18h25
  5. somme cumulative
    Par gsquad dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/04/2006, 17h18

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