Bonjour à tous,

Je travaille actuellement dans un laboratoire de recherche et j'ai plusieurs séries de données à traiter sous Scilab. Mes essais en laboratoire m'ont permis d'obtenir 3 paramètres: débit, pression et temps pour plusieurs cyles de respiration (inspiration + respiration). Je souhaite déterminer le volume inspiré ou expiré pour chaque cycle. J'ai donc créer un code pour cela mais le problème est que ma courbe de volume en fonction du temps présente des minima et maxima locaux (correspondants à la fin de l'inspiration et de l'expiration). J'aimerais pouvoir déterminer ces valeurs cependant je n'arrive pas à calculer le min ou le max sur une plage donnée (par exemple entre la Xe et la (X+N)e valeur de mon vecteur volume).

Voici ce que j'ai déjà codé mais quelqu'un pourrait-il me renseigner sur le code à exécuter ?

Par avance merci !

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
 
Fichier=mopen('Test2_SegA.txt','rt')
Info=mgetl(Fichier, 16)
[n,time,flow,pressureout,pressurein,trig]=mfscanf(-1,Fichier,'%s \t %s \t %s \t %s \t %s')
mclose(Fichier)
 
temps=strsubst(time,',','.')
debit=strsubst(flow,',','.')
pressionext=strsubst(pressureout,',','.')
pressionint=strsubst(pressurein,',','.')
trigger=strsubst(trig,',','.')
 
t=strtod(temps)
Q=strtod(debit)
Pe=strtod(pressionext)
P=strtod(pressionint)
trg=strtod(trigger)
 
i=1
while trg(i)<0
    i=i+1
end
disp("Le trigger est déclenché à "+string(t(i))+" s.")
 
Q1=zeros(length(t)-i+1)
P1=zeros(length(t)-i+1)
toffset=zeros(length(t)-i+1)
for j=0:length(t)-i
    Q1(j+1)=Q(i+j)
    P1(j+1)=P(i+j)
end
for k=1:length(t)-i
    toffset(k+1)=toffset(k)+0.001
end
Q=[]; P=[];
 
Vol=zeros(length(t)-i+1)
for l=1:length(t)-i
    Vol(l+1)=Vol(l)+Q1(l)
end
 
V=abs(Vol)
[Max1,x1]=max(V)
disp("Inspiration 1: "+string(Max1)+" mL.")
 
V1=zeros(40001-x1)
for q=1:40000-x1
    V1(q)=V(q+x1)
end
[Min1,n1]=min(V1)
disp("Expiration 1: "+string(Max1-Min1)+" mL.")
 
Vol(n1+x1+1)=0
for r=n1+x1+1:length(t)-i
    Vol(r+1)=Vol(r)+Q1(r)
end
V=abs(Vol)