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

Scilab Discussion :

Création tableau pour récupérer des données [Débutant]


Sujet :

Scilab

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Création tableau pour récupérer des données
    Bonjour,

    J'avais eu un précédent problème de codage que j'ai résolu. J'en rencontre un nouveau aujourd'hui : voilà je souhaite créer une matrice de 19 lignes et de la longueur des fichiers à traiter.

    J'ai créer une boucle me permettant de calculer les variables souhaitées et à la fin de la boucle je souhaite récupérer toutes ces variables dans un tableau de 19 colonnes et de longueur n fichiers.

    Voici le problème rencontré : lorsque je crée la matrice contenant les variables j'ai un message d'erreur : "sous-matrice incorrectement définie".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bilan(i,19) = [variable1,variable2,variable3,variable4,variable5,variable6,variable7,variable8,variable9,variable10,variable11,variable12,variable13,[],[],variable14,variable15,variable16,variable17]
    Du coup je ne comprends pas l'erreur, si quelqu'un peut m'aider svp ? Merci.

  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 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 : 53 166
    Points
    53 166
    Par défaut
    Étudie ceci :

    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
    --> a = [5 6 8 9]
     a  = 
     
       5.   6.   8.   9.
     
    --> b = [5 6 [] 8 9]
     b  = 
     
       5.   6.   8.   9.
     
    --> c(1,1:5) = [5 6 [] 8 9]
     
    Sous-matrice incorrectement définie.
     
    --> d(1,1:4) = [5 6 [] 8 9]
     d  = 
     
       5.   6.   8.   9.
     
    --> e(1,1:5) = [5 6 %nan 8 9]
     e  = 
     
       5.   6.   Nan   8.   9.
    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)

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci Jerome !

    J'ai compris l'idée, du coup ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bilan(i,1:19) = [variable1,variable2,variable3,variable4,variable5,variable6,variable7,variable8,variable9,variable10,variable11,variable12,variable13,%nan,%nan,variable14,variable15,variable16,variable17]
    Toutefois, j'obtiens un tableau constitué de n variables d'un seul fichier, or j'aimerai avoir une ligne de 19 colonnes pour le fichier n°1 et ainsi de suite jusqu'à n fichiers. La boucle que j'ai effectué est-elle incorrecte ?

  4. #4
    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 : 53 166
    Points
    53 166
    Par défaut
    Citation Envoyé par novicee Voir le message
    La boucle que j'ai effectué est-elle incorrecte ?
    Montre nous ton code
    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)

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    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
     clear
    clc
     
    // ____________ECRITURE DES CONSTANTES________________
    g=9.81 //Constante grav
    metresec= 3.6 // constante kph en ms
     
    //******************CREATION BOUCLE POUR OUVRIR LES FICHIERS********************
     
    files=listfiles('C:\Users\La Machine\Desktop\DOSSIER CC\Dossier Etudiant\SPRINT_RADAR\*.txt')
    for i=1:size(files,1)
     
        data1 = csvRead(files(1),'\t',',')
     
    //_________________OUVERTURE FICHIER XLS MASSE TAILLE__________________
     
     
    Sheets = readxls('masse_taille.xls')
    s1=Sheets(1)
    data2 =s1.value
     
    //******************OBTENTION DES MASSES ET DES TAILLES******************
    for ii=1:size(data2,'r')
    taille = data2(ii,3) // collecte de la taille en m
    masse = data2(ii,2) // collecte de la masse en kg
    end
     
    // ___________PARAMETRES PREALABLE________________
     
    ParamFV = csvRead ('ParamFV.csv',',',',') // Creation des valeurs brutes
     
    for iii=1:size(ParamFV,'r')
    VmaxT = ParamFV (iii,1)
    Tau = ParamFV(iii,2)
    delay = ParamFV (iii,3)
    end
     
    // __________TRACAGE GRAPHIQUE VITESSE - TEMPS NORMAL____________
     
    v = data1(:,2)/metresec // conversion kph en ms
    data1(:,3) = v // ajout 3e colonne de ms
    t = data1(:,1) //création abscisse - temps
     
    //plot (t,v,"r") // traçage courbe x/y
    //show_window(0)
    //xtitle('Relation Vitesse Temps pendant un sprint','Temps (s)')
     
    //*********************CREATION ET PLOT DE L'EXPONENTIELLE A PARTIR DES DATA BRUTES*************************
     
    //___________OBTENTION DE LA VITESSE MODELISEE_________________
     
    Vmod = VmaxT*(1-exp(-(t-delay)/Tau)) // formule exponentielle
     
    //____________OBTENTION DE LA VMAX________________
     
    Vmax = max(Vmod) // Obtention de la vitesse maximale modélisée
     
    //plot(t,Vmod,'b') 
    //show_window(0)
    //xtitle('Relation Force HZT - Vitesse pendant un sprint','Vitesse en (m/s)','Force(N/kg)')
     
    // POUR METTRE EXPONENTIELLE A PARTIR DE LEASTSQ
     
    // *************************CREATION DE L'ACCELERATION SUR LA BASE DE L'EXPONENTIELLE + GRAPH**********************
     
    //_______________OBTENTION DE L'ACCELERATION HORIZONTALE______________
     
    aH = (VmaxT/Tau)*exp(-(t-delay)/Tau)
     
    //_______________GRAPHIQUE AH - TEMPS______________
     
    //plotaH = plot(t,aH,'g')
    //show_window(0)
    //xtitle('Relation Accélération - Temps et Vitesse-Temps pendant un sprint','Temps (s)','Accélération(m/s) (en vert) et Vitesse (m/s) (en bleu')
     
     
    //***************CREATION DE LA FORCE SUR LA BASE DE L'EXPONENTIELLE BRUTE****************
     
    //_________CONSTANTES____________
     
    Cd = 0.9 // Drag coefficient
    p0=1.293
     
    //_________________CALCUL DES PARAMETRES PREALABLES____________________
     
    Af = (0.2025*taille^0.725*masse^0.425)*0.266 // calcul de l'aire frontale
     
    p=p0*760/760*273/(273+20) // densité de l'air
     
    k=0.5*p*Af*Cd // calcul du coefficient de friction aérodynamique
     
    Faero = k*(Vmod-0)^2 // calcul de la force aérodynamique 
     
    // _________________CALCUL DE LA FORCE HORIZONTALE________________
     
    Fh=masse*aH+Faero // Calcul de la force Hzt 
    Fhnorm=Fh/masse // Normalisation de la force Hzt
     
    //__________________GRAPHIQUE FORCE - VITESSE _________________
     
    //show_window(1)
    //plotFV= plot (Vmod,Fhnorm,'m') //graph FV
    //xtitle('Relation Force HZT - Vitesse pendant un sprint','Vitesse en (m/s)','Force(N/kg)')
     
    // *********************CREATION DE LA COMPOSANTE PUISSANCE + GRAPH SUR LA BASE DE L'EXPONENTIELLE BRUTE******************
     
    //_______________CALCUL DE LA PUISSANCE MAXIMALE____________________
     
    PowerWkg= Vmod.*Fhnorm // création de la puissance normalisée
     
    //_________________GRAPH PUISSANCE VITESSE _____________________
     
    //show_window(2)
    //plotpower=plot(Vmod,PowerWkg,'c') // plot de la puissance - vitesse
    //xtitle('Relation puissance-vitesse pendant un sprint','Vitesse en (m/s)','Puissance(W/kg)')
     
    //**********************DETERMINATION FO V0 PMAX*************************
     
    getd('C:\Users\La Machine\Desktop\DOSSIER CC\FONCTION CC') // Recupère le chemin de la fonction
    Vmod1 = Vmod(2:1:length(Vmod)) // Création d'une matrice supprimant la ligne 1 des NaN pour la vitesse
    Fh1 = Fh(2:1:length(Fh)) // Création d'une matrice supprimant la ligne 1 des NaN pour la force horizontale
     
    //__________UTILISATION DE POLYFIT POUR RECUPERER LES VALEURS MAXIMALES THEORIQUES_________________
     
    polyfit1 = polyfit(Vmod1,Fh1,1) // Fonction polyfit
     
    // ____________FORCE MAXIMALE THEORIQUE ____________
     
    F0 = polyfit1(1,:) //Equation F0
    F0norm = F0/masse // Normalisation F0
     
    //_____________PENTE DE LA RELATION FV______________
     
    slope = polyfit1(2,:) // Récupération de la pente de la relation : détermination de l'orientation du profil FV
     
    //_____________VITESSE MAXIMALE THEORIQUE_____________
     
    V0 = -F0/slope // Equation V0
     
    //_____________CALCUL DE LA PMAX____________
     
    Pmax = V0.*F0/4 // Equation PMAX
    Pmaxnorm = Pmax/masse // Normalisation PMAX
     
    // **************OBTENTION DES DATA DE PERFORMANCE********************
     
    distance = VmaxT*((t-delay)+Tau*exp(-(t-delay)/Tau))-VmaxT*Tau // Equation de la distance
     
    //____________DONNEES SELON LA DISTANCE______________
     
    cinqmetre = find(distance>=5,1)// On cherche la distance 5m
    tpscinqmetre = t(cinqmetre)// On recupère le temps correspondant aux 5m
    dixmetre = find(distance>=10,1)// On cherche la distance 10m
    tpsdixmetre = t(dixmetre)// On recupère le temps correspondant aux 10m
    vingtmetre= find(distance>=20,1)// On cherche la distance 20m
    tpsvingtmetre = t(vingtmetre)// On recupère le temps correspondant aux 20m
     
    //____________DONNEES SELON LE TEMPS________________
     
    deuxsec = find(t>=2,1) // On cherche le temps 2s
    distancedeuxsec = distance(deuxsec) //On recupère la distance correspondante aux 2s
    quatresec = find(t>=4,1) // On cherche le temps 4s
    distancequatresec = distance(quatresec) // On recupère la distance correspondante aux 4s
     
    // ***************************CALCUL DES COMPOSANTES MECHANIQUES (RF, DRF)***************************
     
    //____________CALCUL DE LA FORCE TOTALE_______________
     
    Ftot = sqrt(Fh1^2+(masse*g)^2)
     
    //____________CALCUL DU RATIO DE FORCE_____________
     
    RF = (Fh1/Ftot) // calcul du ratio de force
    RF1 = RF(:,1) // RF avec une colonne
     
    //_____________CREATION DE NOUVEAUX VECTEURS___________
     
    RF3s = RF1(15:1:length(RF1))
    VRF = Vmod1(15:1:length(Vmod1))
     
    //_____________OBTENTION DU RFPEAK_______________
     
    RFpeak = max(RF1(find(t>=0.3,1))) // obtention du RFpeak
     
    //____________OBTENTION DU DRF________________
     
    getd('C:\Users\La Machine\Desktop\DOSSIER CC\FONCTION CC') // Recupère le chemin de la fonction
    polyfit2 = polyfit(VRF,RF3s,1) // Utilisation de polyfit pour récupérer le DRF
     
    DRF = polyfit2(2,:) // On utilise polyfit pour le DRF
     
    DRF1 = DRF*100 // On convertit en pourcentage
     
    //___________OBTENTION DU MEAN RF SUR 10M_____________
     
    meanRF10 = mean(RF1(t>0.3&distance<10)) // Moyenne du RF sur 10m à partir de 0.3 secondes
     
    //___________CREATION D'UN TABLEAU POUR RECUEILLIR LES DATA____________
     
    Bilan(i,1:19) = [masse,V0,F0,F0norm,Pmax,Pmaxnorm,slope,meanRF10,RFpeak,DRF1,tpscinqmetre,tpsdixmetre,tpsvingtmetre,%nan,%nan,distancedeuxsec,distancequatresec,Vmax,Tau]
     
    end
    Voilà le code du coup, merci pour l'aide !

    PS: j'ai modifié le nom des "variables"

  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 : 53 166
    Points
    53 166
    Par défaut
    Je pense qu'il y a un petit soucis au niveau de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data1 = csvRead(files(1),'\t',',')
    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)

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    J'aurais du relire plus de fois le fichier ^^.

    Merci beaucoup Jerome. Je reviendrai vers vous si d'autres soucis se présentent.

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

Discussions similaires

  1. automate pour récupérer des données sur un site web
    Par castor75 dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2008, 19h59
  2. [LDAP] problème pour récupérer des données
    Par Bizoo dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 06/04/2007, 09h09
  3. Réponses: 1
    Dernier message: 14/03/2007, 13h08
  4. fonction pour récupérer des données xml
    Par jeff29 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/06/2006, 15h46
  5. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 17h44

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