Calculate mean values of specific (but dynamic) intervals

16 ビュー (過去 30 日間)
NB
NB 2019 年 8 月 1 日
コメント済み: NB 2019 年 8 月 2 日
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 件のコメント
dpb
dpb 2019 年 8 月 1 日
Ah! That's a key piece, then...

サインインしてコメントする。

採用された回答

Jos (10584)
Jos (10584) 2019 年 8 月 1 日
% 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 :-)
  1 件のコメント
NB
NB 2019 年 8 月 2 日
Thanks!

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by