Bonjour,
Étant tout nouveau sur le forum, il s'agit de mon premier post donc si certaines choses ne vont pas n'hésitez pas à me le dire.
Mon problème est le suivant: je travaille sur des données de hauteurs d'eau avec une variable "hauteur_eau" et une variable "diff_time" correspondant à la différence entre une date (t) et une date (t+1). Cette différence me permet de vérifier que l'intervalle de temps est continu mais bien évidemment ce n'est pas le cas et certaines discontinuités de plusieurs heures (voire plusieurs jours) sont présentes.
Depuis 2 jours, je tente de créer une routine me permettant d'insérer un NaN avant chaque discontinuité. Travaillant sur un jeu de donnée de 50 000 valeurs, le but est d'automatiser cette insertion en utilisant un indice repérant les discontinuités temporelles. Voilà où j'en suis, car je tourne un peu en rond.. pour faciliter les tests, j'ai reproduit un jeu de donnée à 7 valeurs.
Ci-dessous mon script, en espérant avoir été assez clair et que quelqu'un pourra m'aider.
Cordialement,
Sylvain
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 diff_time = [0.0208;0.0208;0.0500;0.0208;0.0800;0.0400;0.0208]; hauteur_eau = [1.5;1.2;3.0;3.8;0.4;0.7;0.8]; % Création de l'indice repérant la discontinuité dans l'échelle temporelle. indice_time = find(diff_time~=0.0208); heau_filtree = hauteur_eau(indice_time); % Boucle d'insertion des "NaN" dans la variables hauteur_eau, avant et % après les valeurs des discontinuités temporelles correspondantes: i=1; for t=1:1:length(hauteur_eau) if t == indice_time(i); hauteur_eau(t) = [hauteur_eau(indice_time(i)-1);NaN;hauteur_eau(indice_time(i),1)]; i=i+1; end endLe but étant d'obtenir:Error: In an assignment A(I) = B, the number of elements in B and I must be the same.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 % diff_time hauteur_eau % 0.0208 1.5 % 0.0208 1.2 % NaN NaN % 0.0500 3.0 % 0.0208 3.8 % NaN NaN % 0.0800 0.4 % NaN NaN % 0.0400 0.7 % 0.0208 0.8
Partager