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 :

Calcul de moyenne


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 Calcul de moyenne
    Bonjour, cela faisait longtemps que j'étais pas venu...

    Voila j'ai un soucis,
    Je possède une matrice, avec 13 variables et X observations qui correspondent à des prélèvements à des dates.
    Ce que je souhaite faire, c'est faire des moyennes par quinzaine de jours pour tous les mois, sachant que j'ai 10 ans de données....

    En fait, comme je possède 12 matrices en tout, je souhaite faire cela de manière à les concaténer par la suite, étant donné que les prélèvements ne sont pas toujours fait à la meme date.....

    PS: je possède des NaN dans ma matrice.....

    Merci de m'aider....

  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 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
    Aurais-tu un petit exemple simple de matrice ?

    Sinon, comment comptes-tu prendre en compte les NaN ? Les remplacer par des 0 par exemple ? Ou ne faire la moyenne que sur les autres valeurs ?

  3. #3
    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
    Pour ce qui est des NaN, je comptais les prendre en compte dans la formule en formulant du genre (il s'agit d'un programme au départ fait pour des moyennes mensuelles que j'essaie de modifier)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            if length(f)>0
                Arcachon2(cp,:)=[an(j) mois(i) jour(k)mean(Arcachon(f,:))];
            else
                Arcachon2(cp,:)=[an(j) mois(i) jour(k)nan];
    Le pb qui se pose est de scinder en 2 parties avec les jours qui doivent aller de [1:15] et [16:31]...

  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
    Voila ce que j'ai fais....
    Le pb c'est que ça ne marche pas.....
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     %Calcul des moyennes Bimensuelles
    %**************************************************************************
    clear all
    close all
     
    load Arcachon.mat
    an=[1997:2007]';
    mois=[1:12]';
    jour=[1:31]';
     
     
    Arcachon2=zeros(length([1:12])*length([1997:2007])*length([1:31]))+nan;
    cp=0
    for j=1:length(an)
       for i=1:length(mois)
           for k=1:15
               cp=cp+1;
               clear f
               f=find(Arcachon(:,2)==i & Arcachon(:,1)==an(j) & Arcachon(:,3)==jour(k));
               if length(f)>0
                   Arcachon2(cp,:)=[an(j) mois(i) jour(k) mean(Arcachon(f,:))];
               else
                   Arcachon2(cp,:)=[an(j) mois(i) jour(k) nan];
               end
           end
           for k=16:31
               cp=cp+1;
               clear f
               f=find(Arcachon(:,2)==i & Arcachon(:,1)==an(j) & Arcachon(:,3)==jour(k));
               if length(f)>0
                   Arcachon2(cp,:)=[an(j) mois(i) jour(k) mean(Arcachon(f,:))];
               else
                   Arcachon2(cp,:)=[an(j) mois(i) jour(k) nan];
               end
           end
       end
    end
    Please.......

  5. #5
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Citation Envoyé par Ptinéwik Voir le message
    Voila ce que j'ai fais....
    Le pb c'est que ça ne marche pas.....
    Ah ? Et cela veut dire quoi que cela ne marche pas ? Message d'erreur ? Résultat incorrect ?
    Merci de préciser.

    Sinon, pour commencer, pour cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Arcachon2=zeros(length([1:12])*length([1997:2007])*length([1:31]))+nan;
    Que cherches tu à faire ?
    Là tu crées une matrice de taille length([1:12])*length([1997:2007])*length([1:31]) par length([1:12])*length([1997:2007])*length([1:31])
    Est-ce vraiment ce que tu souhaites ?
    Et si tu veux créer une matrice avec que des NaN à l'intérieur tu peux utiliser directement la fonction NAN plutôt que la fonction ZEROS puis ajout de nan.

  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
    Ca ne marche pas signifie que je reçois un message d'erreur qui est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ??? Subscripted assignment dimension mismatch.
    Alors, je débute en Matlab (ça se voit...), donc je vais essayer de m'expliquer clairement.

    En fait, ce que j'ai voulu faire, c'est créer une matrice de mes observations en fonction de mes années/mois/jour. A cela, comme j'ai des données manquantes, je veux que ma matrice affiche les NaN...
    Le but c'est que qd je fais tourner mon programme, pour chaque quinzaine de chaque mois de chaque année, il me fasse la moyenne....

    PS: désolé pour les soucis de double post et de code, je ne savais pas....

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

Discussions similaires

  1. [VBA-E] problème de calcul de moyenne
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/04/2006, 17h13
  2. [Oracle] Calcul de moyenne par module
    Par naazih dans le forum Langage SQL
    Réponses: 14
    Dernier message: 27/04/2006, 14h38
  3. Programmation Shell avec Red Hat Calcul de moyenne
    Par jcpoulard dans le forum Linux
    Réponses: 3
    Dernier message: 22/02/2006, 22h08
  4. methode qui calcul une moyenne du traffic
    Par siry dans le forum Développement
    Réponses: 7
    Dernier message: 05/05/2005, 17h16
  5. calculer une moyenne avec une requete externe
    Par allowen dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2005, 16h02

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