Bonjour,
étant débutante avec Matlab j'ai un petit souci avec la fonction find. Est-ce que qn pourrait m'aider et m'expliquer?
J'essaye de développer un programme qui me permette de calculer la somme de l'énergie sur un intervalle de temps de 10s. J'utilise donc la boucle for et la fonction find pour trouver les indices qui ont un temps supérieur t+dt(dt=10s). Le fichier que j'utilise comporte une colonne de temps et d'énergie. Le problème est que mes indices klow et kup sont vides quand je charge et donc il me permet pas de faire le calcul de l'énergie. Est-ce que qn sait ou je me trompe dans mon utilisation de la fonction find? Voici mon code:
Merci d'avance
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 clear all close all data2=load('SML64_long_AE_correct.txt'); data=load('trx9_SML64d_mod3.txt'); %data3=load('count.txt'); %t=data(:,1); %def=data(:,12); Q=data(:,11); Ener=data2(:,14); temps=data2(:,4); def=data2(:,7); defm=data(:,16); amplitude=data2(:,12); count=data2(:,9); cumul_ener=data2(:,17); dt=10; dE=0; k=0, for i=1:length(temps) t(i)=temps(i); [klow]=find (temps(i) >t(i),1,'first'); [kup]=find(temps(i)>t(i)+dt,1,'first'); for j=klow:kup dE=dE+Ener(j); end k=k+1; dE2(k)=dE; taux(k)=dE2(k)/dt; end
Partager