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 :

Incrémenter une valeur dans un tableau


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Points : 0
    Points
    0
    Par défaut Incrémenter une valeur dans un tableau
    Bonjour
    Objectif incrémenter une valeur dans un tableau

    Je fais la lecture du fichier excel qui se presente de la forme suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    1	2	3	1	5	6	222	336
    21	3	4	1	6	7	223	336
    3	4	5	1	7	9	224	336
    4	5	6	2	8	10	225	336
    5	7	12	3	9	12	226	336
    6	8	1	3	10	13	227	336
    7	9	3	5	11	14	228	336
    Quand la 4eme colonne =1
    Incrémente la 7eme colonne par z=z+50
    Soit 50 la première fois puis 100 puis 150…

    Et quand la 4ème colonne différent de 1 j’incrémente la colonne 7 par la dernière valeur de Z.

    Exemple ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    1	2	3	1	5	6	272	336
    21	3	4	1	6	7	323	336
    3	4	5	1	7	9	374	336
    4	5	6	2	8	10	375	336
    5	7	12	3	9	12	376	336
    6	8	1	3	10	13	377	336
    7	9	3	5	11	14	378	336
    Pour mon code je fais une lecture du fichier qui s’appelle fic_conso et ensuite j’ai un problème.

    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
    %  Variable à incrémenter
       z=0
    %   Taille du tableau pour la boucle for
       [m,n]=size(tab_conso)% permet de savoir le nombre de ligne dans mon fichier excel?
       for i=1:m
         if tab_conso(m,4)==1 
     
           z=z+50
     
           tab_conso(m,7)= tab_conso(m,7)+z
         else
             tab_conso(m,7)= tab_conso(m,7)+z
         end
     
       end

    j’espère vous pourrez m’aider ou trouverez une autre solution qui va tout aussi bien

  2. #2
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Bonjour,

    et ensuite j’ai un problème
    Quel est ton problème exactement? Qu'est ce qui ne fonctionne pas, quelles erreurs obtiens-tu?
    Qu'est ce que c'est ta variable "tab_conso' exactement?

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

    Ta variable itérative est i est non m for i=1:m.

    En un peu simplifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        if tab_conso(i,4)==1
            z=z+50;
        end
        tab_conso(i,7)= tab_conso(i,7)+z;

  4. #4
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    Voici ma proposition je pense que tu gagnes un peu de temps par rapport à ta boucle
    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
    clear all
    clc;
    tab_conso=[(1:310)' ones(310,2)];
     
    L=size(tab_conso,1);
     
    z=50;
    for i=0:50:L
        if i<=L-50
            tab_conso(i+1:i+50,3)=tab_conso(i+1:i+50,3)+z;
        else
            tab_conso(i+1:end,3)=tab_conso(i+1:end,3)+z;
        end
        z=z+50;
    end
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Points : 0
    Points
    0
    Par défaut
    voila l'explication de tab_conso
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    % Lecture du fichier de consommation
    disp(['Lecture du fichier conso: ' fic_conso])
    tic
    fid = fopen(fic_conso);
    [tab_conso,tab_conso_dim] = fscanf(fid, ['%d/%d/%d %d:%d:%d;%d;%d'] , [8 inf]);
    tab_conso_dim=tab_conso_dim/8;
    disp(['dim file:' num2str(tab_conso_dim)]);
    tab_conso=tab_conso';
    fclose(fid);
    % Calcul d'un vecteur de temps decimal pour la conso en jour julian par rapport à la
    % date_ref
    day_conso=datenum(tab_conso(:,3),tab_conso(:,2),tab_conso(:,1),...
        tab_conso(:,4),tab_conso(:,5),tab_conso(:,6))-date_ref;
    toc
    ce qui bugg ou je dois modifier

    ensuite je veux que quand il est 1H qui correspond à tab_conso(:,4) je change les valeur de tab_conso(:,7) à savoir que tab conso 7 est une valeur croissante donc quand il est 1H01, 1H02 ....
    tab_conso(:,7) s'incrémente de +50 soit 50 a 1H et a 1H01 +100 et a 1H02 +150...
    et quand il est 2H tab_conso(:,7) doit s'incrémenter de la dernière valeur de z soit 59min*50 pour une journée et 59*50*2 pour le 2eme jour...
    j'espère être assez précis

    Cordialement

  6. #6
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    j'ai choisi 310 aléatoirement mais aussi exprès (juste un exemple parce que j'ai pas le contenu de tes fichiers) et aussi pour que tu fasse attention si le size de ta colonne 7 (mois j'ai mis 3) n'est pas un multiple de 50 alors tu dois ajouter une condition (dans ce cas on utilise les commandes après le else).

    Normalement ce code fonctionne parfaitement mais juste au lieu d'utiliser mon tab_conso tu utilises le continu de tes fichiers xls
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Points : 0
    Points
    0
    Par défaut
    quand je fais ta solution soft001 qui me laisse perplexe sur l'idée sa me declare l'erreur suivante" Index exceeds matrix dimensions."
    pas d'autre solution ? c'est obliger pourtant il doit y avoir une solution

  8. #8
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    Tu peux mettre en pièce jointe le fichier que tu utilises et le code final.
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Points : 0
    Points
    0
    Par défaut
    sa c'est le premier txt quil faut donc modifier ( je veux modifier la consomation des gens )
    EDF-cpt-2011_janvier.txt
    http://up.sur-la-toile.com/i19Ss


    le 2eme txt qui correspond a la production des panneaux solaire donc c'est une installation de 3KW donc sil y a 6KW la production double...
    SOL-cpt-2011_janvier.txt
    http://up.sur-la-toile.com/i19St

    et le code
    V2KWHavecmodifpuissance.m
    http://up.sur-la-toile.com/i19Su


    l'objectif est de modifier la consommation des gens en ajoutant +50 de 13H jusqu'a 14H soit 59 fois 50.mais a savoir qu'il sagit d'un compteur donc a 14H la valeur du tableau doit etre incrementer de 59*50 jusqu'a arriver une nouvelle fois a 13H et se ainsi de suite

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Points : 726
    Points
    726
    Par défaut
    Bonjour,

    Pourquoi utilises-tu matlab pour faire ça ?

    Christophe Halgand
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Points : 0
    Points
    0
    Par défaut
    j'utilise matlab car ont a deja commencer avec sa pour calculer les delta.
    du coup je continue avec matlab mais je bloc

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Points : 0
    Points
    0
    Par défaut Reformulation
    Reformulation
    Objectif incrémenter une valeur dans un tableau

    Je fais la lecture du fichier Excel qui se présente de la forme suivante
    1	2	3	13	5	6	222	336
    21	3	4	13	6	7	223	336
    3	4	5	13	7	9	224	336
    4	5	6	2	8	10	225	336
    5	7	12	3	9	12	226	336
    6	8	1	13	10	13	227	336
    7	9	3	13	11	14	228	336
    Quand la 4eme colonne =1
    Incrémente la 7eme colonne par z=z+50
    Soit 50 la première fois puis 100 puis 150…

    Et quand la 4ème colonne est différente de 1 j’incrémente la colonne 7 par la dernière valeur de Z.

    Exemple sa donne :
    1	2	3	13	5	6	272	336
    21	3	4	13	6	7	323	336
    3	4	5	13	7	9	374	336
    4	5	6	2	8	10	375	336
    5	7	12	3	9	12	376	336
    6	8	1	13	10	13	427	336
    7	9	3	13	11	14	478	336
    Pour mon code je fais une lecture du fichier qui s’appelle fic_conso qui fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    disp(['Lecture du fichier conso: ' fic_conso])
    tic
    fid = fopen(fic_conso);
    [tab_conso,tab_conso_dim] = fscanf(fid, ['%d/%d/%d %d:%d:%d;%d;%d'] , [8 inf]);
    tab_conso_dim=tab_conso_dim/8;
    disp(['dim file:' num2str(tab_conso_dim)]);
    tab_conso=tab_conso';
    fclose(fid);
    % Calcul d'un vecteur de temps decimal pour la conso en jour julian par rapport à la
    % date_ref
    day_conso=datenum(tab_conso(:,3),tab_conso(:,2),tab_conso(:,1),...
        tab_conso(:,4),tab_conso(:,5),tab_conso(:,6))-date_ref;
    toc


    et ensuite l’objectif il y a donc un probleme

    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
    %  Variable a incrementer
       z=0
    %   Taille du tableau pour la boucle for
       [m,n]=size(tab_conso)% objectif savoir le nombre de ligne dans mon fichier excel permet OK apparemment 
     
       for i=1:m
         if tab_conso(i,4)==13 % objectif pour la ligne correspondante je vais a la colonne 4 
     
           z=z+50
     
           tab_conso(i,7)= tab_conso(i,7)+z % objectif incrémenter la 7eme colonne 
         else
             tab_conso(i,7)= tab_conso(i,7)+z
         end
     
       end
    Ou bien repartir de 0 je ne voie pas de solution

  13. #13
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    Dans mes anciennes messages je t'ai répondu sa bien lire ta question (tu tiens pas en compte de ce que j'ai écrit avant). Par contre pour ton code je ne vois aucun problème saut cette condition
    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
    %  Variable a incrementer
       z=0
    %   Taille du tableau pour la boucle for
       [m,n]=size(tab_conso)% objectif savoir le nombre de ligne dans mon fichier excel permet OK apparemment 
    
       for i=1:m
         if tab_conso(i,4)==1 % objectif pour la ligne correspondante je vais a la colonne 4 
         
           z=z+50
          
           tab_conso(i,7)= tab_conso(i,7)+z % objectif incrementer la 7eme colonne 
         else
             tab_conso(i,7)= tab_conso(i,7)+z
         end
       
       end
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  14. #14
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    Une autre chose, dans scripte V2KWHavecmodifpuissance.m tu n'as pas fait les corrections de Winjerome
    Fichiers attachés Fichiers attachés
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Points : 0
    Points
    0
    Par défaut
    Ha oui peut etre que je n'ai pas envoyer la dernière version avec la modification de Winjerome que j'avais testé. mais celle ci ne marché pas quand je faisais matlab en fonction pas a pas il sauté directement ma boucle for.

    le fichier que tu m'as envoyer fonctionne ? d'abord un grand merci pour ton aide

    car il s'agit de se que j'avais fais sans les 2 lignes 71 et celle precedente.
    et tu as marqué il s'agit d'une option donc d'apres moi sa ne vas pas marcher. il s'agit de la meme proposition de Winjerome.
    je te tiens au courant en tout cas et merci beaucoup de tes propositions en tout cas.

    ont est pas loin du but
    cordialement

  16. #16
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    Oui ça fonctionne, après je sais pas si le reste de ton code donne le bon résultat ou non
    Voici la compilation de la ligne 71 de ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     %% Soft001
       %Juste pour vérifier le résultat
       [tab_conso0(1:200,4) tab_conso0(1:200,7) tab_conso(1:200,7) tab_conso(1:200,7)-tab_conso0(1:200,7)]
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
               A        B          C               D
     
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               0     4542130     4542130           0
               1     4542130     4542180          50
               1     4542130     4542230         100
               1     4542130     4542280         150
               1     4542130     4542330         200
               1     4542130     4542380         250
               1     4542130     4542430         300
               1     4542130     4542480         350
               1     4542130     4542530         400
               1     4542130     4542580         450
               1     4542130     4542630         500
               1     4542130     4542680         550
               1     4542130     4542730         600
               1     4542130     4542780         650
               1     4542130     4542830         700
               1     4542130     4542880         750
               1     4542130     4542930         800
               1     4542130     4542980         850
               1     4542130     4543030         900
               1     4542130     4543080         950
               1     4542130     4543130        1000
               1     4542130     4543180        1050
               1     4542130     4543230        1100
               1     4542130     4543280        1150
               1     4542130     4543330        1200
               1     4542130     4543380        1250
               1     4542130     4543430        1300
               1     4542130     4543480        1350
               1     4542130     4543530        1400
               1     4542130     4543580        1450
               1     4542130     4543630        1500
               1     4542130     4543680        1550
               1     4542130     4543730        1600
               1     4542130     4543780        1650
               1     4542130     4543830        1700
               1     4542130     4543880        1750
               1     4542130     4543930        1800
               1     4542130     4543980        1850
               1     4542130     4544030        1900
               1     4542130     4544080        1950
               1     4542130     4544130        2000
               1     4542130     4544180        2050
               1     4542130     4544230        2100
               1     4542130     4544280        2150
               1     4542130     4544330        2200
               1     4542130     4544380        2250
               1     4542130     4544430        2300
               1     4542130     4544480        2350
               1     4542130     4544530        2400
               1     4542130     4544580        2450
               1     4542130     4544630        2500
               1     4542130     4544680        2550
               1     4542130     4544730        2600
               1     4542130     4544780        2650
               1     4542130     4544830        2700
               1     4542130     4544880        2750
               1     4542130     4544930        2800
               1     4542130     4544980        2850
               1     4542130     4545030        2900
               1     4542130     4545080        2950
               1     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               2     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
               3     4542130     4545130        3000
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    A : Colonne 4 
    B : Colonne 7 non modifiée 
    C : Colonne 7 modifiée 
    D : Z  pour chaque ligne
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Points : 0
    Points
    0
    Par défaut Merci en tout cas tu me fais esperer
    soft001 merci beaucoup je suis super impatient de pouvoir tester le code mais demain je ne suis pas sure que je pourais le faire malheureusement je pense je pourrais tester le code mercredi prochain je te tiens au courant mais a voir comme sa tu me rend heureux.

    merci soft001 je te tiens au courant des que possible

    bonne soiree

  18. #18
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Points : 0
    Points
    0
    Par défaut
    je ne sais pas comment tu as fais j'ai essayer d'assembler toutes les proposition du forum mais en vain.
    peux tu me passer le code s'il te plait
    cordialement

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Points : 0
    Points
    0
    Par défaut probleme de syntaxe
    1ere operation de lecture de fichier qui fonctionne.
    le fichier ressemble a sa:
    01/02/2011 09:13:00;4741993;6133098
    01/02/2011 09:14:00;4742003;6133098
    01/02/2011 09:15:00;4742013;6133098
    01/02/2011 09:16:00;4742023;6133098
    01/02/2011 09:17:00;4742034;6133098
    01/02/2011 09:18:00;4742043;6133098
    01/02/2011 09:19:00;4742052;6133098
    01/02/2011 09:20:00;4742062;6133098
    01/02/2011 09:21:00;4742072;6133098

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    % Lecture du fichier de consommation OK
    disp(['Lecture du fichier conso: ' fic_conso])
    tic
    fid = fopen(fic_conso);
    [tab_conso,tab_conso_dim] = fscanf(fid, ['%d/%d/%d %d:%d:%d;%d;%d'] , [8 inf]);
    tab_conso_dim=tab_conso_dim/8;
    disp(['dim file:' num2str(tab_conso_dim)]);
    tab_conso=tab_conso';
    fclose(fid);
    % Calcul d'un vecteur de temps decimal pour la conso en jour julian par rapport à la
    % date_ref
    day_conso=datenum(tab_conso(:,3),tab_conso(:,2),tab_conso(:,1),...
        tab_conso(:,4),tab_conso(:,5),tab_conso(:,6))-date_ref;
    toc

    et maintenant le probleme
    incrementer de 50 la colonne 7 a chaque fois que la colonne 4 est = a 12
    avec une incrementation donc 50+50+...
    et quand la colonne 4 est different de 12
    la colonne 7 prend la derniere valeur du 50+50+50.


    ma proposition qui ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      [m,n]=size(tab_conso)% objectif savoir le nombre de ligne dans mon fichier 
     
    for i=1:m
           if tab_conso(i:,4)==12 % objectif pour la ligne correspondante je vais a la colonne 4 
            z=z+50
     
             tab_conso(i:,7)= tab_conso(i:end,7)+z % objectif incrementer la 7eme colonne 
           end
             if tab_conso(i:,4)~=1
                 tab_conso(i:,7)= tab_conso(i:,7)+z
           end
    cordialement
    ( il faut donc modifier les 10 dernieres lignes que je vous proposes ci dessus.

  20. #20
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    Normalement c'est le même programme que j'ai mis dans mon ancien message juste avec une petite modification dans la ligne 72 affin que tu puisses vérifier ton résultat.
    Fichiers attachés Fichiers attachés
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

Discussions similaires

  1. Réponses: 9
    Dernier message: 05/01/2007, 20h04
  2. Réponses: 4
    Dernier message: 27/11/2006, 23h20
  3. Chercher une valeur dans un tableau
    Par christel1982 dans le forum ASP
    Réponses: 5
    Dernier message: 14/09/2006, 09h01
  4. Rechercher une valeur dans un tableau
    Par pafi76 dans le forum Access
    Réponses: 2
    Dernier message: 29/06/2006, 14h23
  5. Réponses: 21
    Dernier message: 28/02/2006, 15h23

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