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 :

Moyenne avec intervalle d'application


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Géologue
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géologue
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 20
    Points
    20
    Par défaut Moyenne avec intervalle d'application
    Bonjour à tous.

    Je vous sollicite une fois de plus pour un programme qui se finalise de jour en jour...

    Je souhaite appliquer une moyenne sur une matrice (9554,4) mais qui ne s'effectuerai que toutes les 6 valeurs avec une application comme suit:
    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
    1-
    2|
    3|mean(1:6)
    4|
    5|
    6-
    7|
    8|
    9|mean(6:11)
    10|
    11-
    12|
    13|mean(11:16)
    14|
    15|
    16-
    j'ai alors fait un petit script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i=1:length(file)
    filemoy=mean(file((1+5i:6+5i),:));
    end
    Malheureusement les données contenues dans la matrice filemoy sont toutes de la même valeur....

    Pourriez vous m'aider svp afin que la matrice contienne les bonnes valeurs!!

    et en plus comment extraire la valeur de la ligne 1,6,11,16 ....etc (car la première colonne représente des dates..

    Merci

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

    Pour extraire les lignes 1, 6, 11, ... tu peux faire Ensuite pour calculer la moyenne des lignes, il faut que tu rentres le deuxième argument de la dimension (je te renvoie à la documentation):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mean( file(1:5:end,:) , 2)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Géologue
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géologue
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Merci.

    Mais je suis toujours assez mauvais sous Matlab et que veut dire " deuxième argument de la dimension"??

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bin comme on peut le voir dans la documentation de la fonction (obtenue en tapant doc mean) que tu as du soigneusement lire
    Citation Envoyé par doc mean
    M = mean(A,dim) returns the mean values for elements along the dimension of A specified by scalar dim. For matrices, mean(A,2) is a column vector containing the mean value of each row.
    Prenons un cas simple: file = rand(11,4), on a alors file(1:5:end,:) de taille 3x4.
    Ainsi donc tu as deux façons de calculer tes moyennes:
    1. Selon chaque ligne: mean(file(1:5:end,:),2) il en résultera un vecteur colonne 3x1
    2. Selon chaque colonne: mean(file(1:5:end,:),1) il en résultera un vecteur ligne 1x4

  5. #5
    Membre à l'essai
    Homme Profil pro
    Géologue
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géologue
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Ahhhhhhhhhhhhhhhhh!!! Ok Tout marche nikel
    merci d'être si patient . Difficile d'être naturaliste et de se reconvertir....

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Attention dans ton premier message, la syntaxe 1+5i donne le nombre complexe 1+5i. Tu as oublié le signe "multiplier" => 1+5*i (ce qui au passage est d'ailleurs également faux dans ton cas car si i = 1, le premier incrément vaut 1+5*1 soit 6)

    Une solution efficace (déconseillé pour les débutants) consiste généralement à se passer de la boucle FOR-END en redimensionnant la matrice de départ avec RESHAPE en une matrice 2D et à appliquer l'opérateur sur les lignes ou les colonnes de la nouvelle matrice.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

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

Discussions similaires

  1. Calculer une moyenne avec une matrice
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 05/06/2006, 16h47
  2. Réponses: 1
    Dernier message: 07/05/2006, 00h26
  3. Réponses: 1
    Dernier message: 05/05/2006, 22h34
  4. [VB6]Interractions avec d'autres applications
    Par dbozec dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/11/2005, 19h12
  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