Bonjour à tous !
Je travaille sur des données tri-horaires (ce qui signifie que j'ai une donnée toutes les trois heures).
Exemple :
>> colonne 1 --> les heures
>> colonne 2 --> les données
Et j'ai besoin de données horaires (ce qui signifie qu'il me faut une donnée par heure).
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 00 12 03 15 06 18 09 5 12 0 15 25 18 13 21 13 23 21 00 19 03 17 06 18 09 3 12 2 15 6 18 11 21 23 23 12
Pour avoir ces données horaires, j'ai choisi de tripliquer (multiplier par 3) chaque ligne de ma matrice, sauf l'heure qui doit être mise à jour ... :
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 00 12 01 12 02 12 03 15 04 15 05 15 06 18 07 18 08 18 09 5 10 5 11 5 12 0 13 0 14 0 15 25 15 25 17 25 18 10 19 10 20 10 21 13 22 13 23 13 00 19 01 19 02 19 03 17 03 17 03 17 etc
Sachant qu'en réalité je n'ai pas 2 colonnes mais 6, voici le code que j'ai pour le moment :
Je mets 3 fois la même boucle à la suite pour rajouter 3 ligne dans ma "Matrice(n)" horaire pour chaque ligne "lig" de ma matrice tri-horaire ...
Exemple.txt
Le problème c'est qu'en plus d'être très brouillon, mon travail 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
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 %% IMPORTATION DES DONNEES % Choix du fichier de données à utiliser : FichierTexte = 'Exemple.txt' % Ouverture du fichier texte dans lequel il y a les houles. fid=fopen(FichierTexte,'r'); % Lecture d'un texte formaté. m=textscan(fid,'%f %f %f %f %f %f %f','delimiter','\t'); % Fermeture du fichier après lecture. fclose(fid); YY=m{1}; % Année MM=m{2}; % Mois JJ=m{3}; % Jour HHtri=m{4}; % Heure Min=m{5}; % Minutes Vit=m{6}; % Dir=m{7}; % %% CONVERTIR LE TRI-HORAIRE EN HORAIRE % J'initialise le nombre de ligne de ma matrice Tri-horaire Dlig=length(YY) n=1 for lig=1:Dlig % J'initialise mon heure pour n=1 if n==1 HH(1) = 0 % Si j'atteins 23h, je réinitialise HH elseif HH(n-1) == 23 HH(n) = 0 % Dans tous les autres cas, je rajoute 1h à HH : else HH(n) = HH(n-1) +1 end % Je concatène ma première ligne pour la valeur lig actuelle Matrice(n) = horzcat (YY(lig), MM(lig), JJ(lig), HH(n), Vit(lig), Dir(lig)) if n==1 HH(1) = 0 elseif HH(n-1) == 23 HH(n) = 0 else HH(n) = HH(n-1) +1 % Je concatène ma deuxième ligne pour la valeur lig actuelle Matrice(n) = horzcat (YY(lig), MM(lig), JJ(lig), HH(n), Vit(lig), Dir(lig)) end if n==1 HH(1) = 0 elseif HH(n-1) == 23 HH(n) = 0 else HH(n) = HH(n-1) +1 % Je concatène ma troisième ligne pour la valeur lig actuelle Matrice(n) = horzcat (YY(lig), MM(lig), JJ(lig), HH(n), Vit(lig), Dir(lig)) end end
Comment puis-je faire pour créer ma nouvelle Matrice qui consiste à regrouper des matrices déjà existantes, tripliquer chaque ligne en modifiant seulement l'heure ...In an assignment A(I) = B, the number of elements in B and I must be the same. Error in AllData (line 89) MatriceVent(n) = horzcat (YYV(lig), MMV(lig), JJV(lig), HHVbis(n), VitV(lig), DirV(lig))
Je suis en train de voir pour :
1) Créer ma matrice HH avec 3*Dlig lignes (3 fois le nombre de ligne de ma matrice tri-horaire).
2) Concaténer mes matrices (sauf HH)
3) Tripliquer chaque ligne
5) rajouter HH à tout ça
... Si vous avez plus simple je prends !
Merci d'avance !
Partager