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 :

renvoyer les résultats d'une boucle dans une matrice


Sujet :

MATLAB

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 202
    Points : 96
    Points
    96
    Par défaut renvoyer les résultats d'une boucle dans une matrice
    Bonjour, alors voila qq lignes du programme que j'a écrit.
    Le but est de renvoyer les résultats de la boucle Data2 dans la matrice Datatout.
    En fait, il s'agit du calcul des moyennes mensuelles de 13 paramètres sur 12 stations, en sachant que chaque station est prise au début de la boucle.

    Le problème est que la concaténation ne se fait pas comme il faut, et que je me retrouve avec juste ma 13ème station de mémorisée...

    Quelqu'un pourrait-il m'aider?

    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
    cp0=-12;
    for k=1:12
        cp0=cp0+13;
        S=load(char(Site(k,3)));
        Data=S.(char(Site(k,3)));
        Data=[Data(:,6:7) Data(:,13:end)];
        clear S
     
        %if TEMP==1
     
        Data2=[];
        Datatout=[];
     
        cp=0;
        for i=1:12
            clear f
            cp=cp+1;
            f=find(Data(:,2)==i);
            if ~isempty(f)
                Data2(cp,:)=nanmean(Data(f,3:end));
     
            end
        end
     
        Datatout(:,(cp0:cp0+12))=Data2;
    end
    Moi j'aime bien Matlab...mais j'ai pas l'impression que ça soit réciproque......

  2. #2
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    Déjà dès tes 1ères lignes tu écrases ta variable Data :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Data=[Data(:,6:7) Data(:,13:end)];
    Tu ne gardes que les 6,7 et 13 jusqu'à la fin colonnes du Data que tu viens de calculer, à la prochaine itération cette variable sera écrasée : est-ce ce que tu souhaites ?
    Après j'avoue que sans données pour tester c'est un peu difficile de savoir ce que tu as en entrée et ce que tu veux en sortie.

    [EDIT]Ah oui et surtout tu réinitialises Datatout à vide [] à chaque itération donc forcément...Cette initialisation doit être faite avant la boucle for principale.
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 202
    Points : 96
    Points
    96
    Par défaut
    Et oui, c'était cet écrasement qui venait tout vider au fur et à mesure...trop bete, mais à force d'etre dessus, je n'ai pas vu cette petite erreur....merci beaucoup de ton aide...comme d'habitude d'ailleurs....
    Moi j'aime bien Matlab...mais j'ai pas l'impression que ça soit réciproque......

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

Discussions similaires

  1. [ftp] Renvoyer le résultat d'un ls dans une log (dans le script)
    Par omelhor dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 23/03/2015, 20h17
  2. Réponses: 3
    Dernier message: 06/05/2013, 15h04
  3. [XL-2003] faire une boucle dans une boucle VBA
    Par the-geut dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/04/2010, 15h06
  4. [PHP 5.0] Manipulation XML une boucle dans une boucle
    Par lepotier dans le forum Langage
    Réponses: 2
    Dernier message: 10/03/2010, 12h15
  5. Réponses: 4
    Dernier message: 02/07/2008, 11h32

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