Effacer les filtres
Effacer les filtres

find time at the midpoint of data

1 vue (au cours des 30 derniers jours)
Charlie Elverson
Charlie Elverson le 5 Mai 2015
Commenté : Star Strider le 5 Mai 2015
I have data for which I need to find the time at which the midpoint has been reached. I have a vector of flow rates and a vector of times corresponding to those flow measurements. I was about to code it by hand, when I found the trapz() function to do the numeric integration and give the total discharge. I also need the time at which 50% of the discharge occurred. Is there a function which would give this? I'm aware of how to code it manually, I just want to know if a function already exists to do this.

Réponse acceptée

Star Strider
Star Strider le 5 Mai 2015
The cumtrapz function will give you a progressive integration of your data, in this instance of flow rates as a function of time.
For example:
Int_Flow = cumtrapz(time, flow_rate);
  2 commentaires
Charlie Elverson
Charlie Elverson le 5 Mai 2015
Thanks, but that doesn't quite do what I need (although it'll be very useful if I have to do this by hand). The midpoint falls somewhere between two data points, so I want a function that will interpolate between data points to find where 50% discharge occurs.
Star Strider
Star Strider le 5 Mai 2015
Use the interp1 function to find the time.
Int_Flow = cumtrapz(time, flow_rate);
Flow50 = interp1(Int_Flow, time, Int_Flow(end)/2);
This will give you the time at which the 50% discharge occurs (if I understand your question correctly). The 50% discharge is of course Int_Flow(end)/2.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Numerical Integration and Differentiation dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by