Calculate mean values of specific (but dynamic) intervals
9 views (last 30 days)
Show older comments
Hello everyone,
I want to calculate mean values of specific (but dynamic) intervals across several result files. I know how I get more than one results file into MATLAB and the other basics.
But what I dont know is the following: an interval should be defined/ starting when a value is between -0.05 and 0.05 in a specific column. It is dynamic, because it sometimes lasts for 8 seconds, sometimes for 10 seconds. So the interval should be ended when the value is <-0.05 or >0.05.
Then i want to calculate the mean value of data from another column according to the defined intervals in the other column.
I hope u understand what I want to do.
Thanks in advance
7 Comments
Accepted Answer
Jos (10584)
on 1 Aug 2019
% interval and value are the relevant columns of your data matrix
interval = data(:,3)
value = data(:,2)
% find the sections
q = ~(interval < -.05 | interval > .05)
dq = diff([false q false])
ix1 = find(dq==1)
ix2 = find(dq == -1) - 1
% function to apply to each section
myfun = @(k) mean(value(ix1(k):ix2(k)))
R = arrayfun(myfun, 1:numel(ix1)) % mean of each section
not tested but it should work :-)
More Answers (0)
See Also
Categories
Find more on Fourier Analysis and Filtering in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!