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 :

manipulation des cellules [Débutant]


Sujet :

MATLAB

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Points : 46
    Points
    46
    Par défaut manipulation des cellules
    Bonjour,

    J'ai un fichier data.csv (c'est la pièce jointe 'data.xlsx' afin de pouvoir le joindre sur le forum...) que je souhaite le manipuler avec matlab. J'ai écris le code suivant
    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
    fid = fopen('data.csv', 'r');
     
    X = textscan(fid, '%s%d%s%s%d%d%d%d%d%d%s%d%s%d%d%d%d%s', ...
        'delimiter', ';', ...
        'headerlines', 1);
     
    fclose(fid);
     N=length(X{1});
     
    for n = [11 13 18]    
        X{n} = strrep(X{n}, '{', '');
        X{n} = strrep(X{n}, '}', '');   
    end
     
     n = 13;
     X{n} = cellfun(@(x) strsplit(x, ','), X{n}, 'uniformoutput', false);
     
     for i=1:N
         n=13;
         R=X{n};
     
     end
     for i=1:N
      if numel(R{i})~=1
     
         R{i} = cellfun(@(x) strsplit(x, '*'), R{i}, 'uniformoutput', false);
      end
     end
     
     for i=1:N
         if numel(R{i})~=1
           if strcmp(R{i}{1}{1},'TC_act_1')==1
               a(i)=str2double(R{i}{1}{2})*2*18;
           end
           if strcmp(R{i}{1}{1},'TC_act_2')==1
               a(i)=str2double(R{i}{1}{2})*3*15;
           end
           if strcmp(R{i}{1}{1},'TC_act_3')==1
               a(i)=str2double(R{i}{1}{2})*2*21;
           end
           if strcmp(R{i}{1}{1},'TC_act_4')==1
               a(i)=str2double(R{i}{1}{2})*2*20;
           end
           if strcmp(R{i}{1}{1},'TC_act_5')==1
               a(i)=str2double(R{i}{1}{2})*2*21;
           end
           if strcmp(R{i}{1}{1},'TC_act_6')==1
               a(i)=str2double(R{i}{1}{2})*3*12;
           end
           if strcmp(R{i}{1}{1},'TC_act_7')==1
               a(i)=str2double(R{i}{1}{2})*4*11;
           end
           if strcmp(R{i}{1}{1},'TC_act_8')==1
               a(i)=str2double(R{i}{1}{2})*2*24;
           end
           if strcmp(R{i}{1}{1},'TC_act_9')==1
               a(i)=str2double(R{i}{1}{2})*3*12;
           end
     
           if strcmp(R{i}{2}{1},'TC_act_1')==1
               b(i)=str2double(R{i}{2}{2})*2*18;
           end
           if strcmp(R{i}{2}{1},'TC_act_2')==1
              b(i)=str2double(R{i}{2}{2})*3*15;
           end
           if strcmp(R{i}{2}{1},'TC_act_3')==1
              b(i)=str2double(R{i}{2}{2})*2*21;
           end
           if strcmp(R{i}{2}{1},'TC_act_4')==1
               b(i)=str2double(R{i}{2}{2})*2*20;
           end
           if strcmp(R{i}{2}{1},'TC_act_5')==1
               b(i)=str2double(R{i}{2}{2})*2*21;
           end
           if strcmp(R{i}{2}{1},'TC_act_6')==1
               b(i)=str2double(R{i}{2}{2})*3*12;
           end
           if strcmp(R{i}{2}{1},'TC_act_7')==1
               b(i)=str2double(R{i}{2}{2})*4*11;
           end
           if strcmp(R{i}{2}{1},'TC_act_8')==1
               b(i)=str2double(R{i}{2}{2})*2*24;
           end
           if strcmp(R{i}{2}{1},'TC_act_9')==1
               b(i)=str2double(R{i}{2}{2})*3*12;
           end
     
         else a(i)=0;
             b(i)=0;
     
         end
         T(i)=a(i)+b(i)+X{numel(X)-1}(i)+X{numel(X)-2}(i)+X{numel(X)-3}(i)+X{numel(X)-4}(i);
     end
    afin de calculer deux vecteurs a et b. Le calcul de a semble correcte mais le calcul de b est erroné ça donne des valeurs nulles. Je ne sais pas où est le soucis dans mon code pourtant il semble correcte!!!
    Fichiers attachés Fichiers attachés

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Points : 46
    Points
    46
    Par défaut
    C'est bon j'ai trouvé le souci. Il ajouter un espace devant les chaines de caractère dans le b. Merci en tous cas.

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

Discussions similaires

  1. Manipulation des éditions de cellules d'un TStringGrid
    Par ZenZiTone dans le forum Composants VCL
    Réponses: 2
    Dernier message: 27/06/2014, 10h15
  2. [Débutant] manipulation des cellules
    Par vampirerose dans le forum MATLAB
    Réponses: 23
    Dernier message: 27/03/2013, 16h55
  3. [WD16] Manipulation des cellules d'une table
    Par xoorus dans le forum WinDev
    Réponses: 4
    Dernier message: 22/05/2012, 13h06
  4. [debutant] comment faire des manipulation de cellules
    Par Mr_asticot dans le forum BIRT
    Réponses: 2
    Dernier message: 29/03/2007, 09h52
  5. [VB6] Manipuler des cellules/lignes/colonne d'un Flexgrid
    Par zako dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 08/06/2006, 18h34

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