Please help: calculate average frequency of histogram

Hello everyone,
I hope anyone could help me, I'm kinda new to Matlab.
I have two variables, speed and time. I would like to calculate mean duration of each speed interval.
For example:
In Speed interval between 2-4 mph (shown in yellow color), i have 4 speed data. The first data was last for 1-sec only, and the others were last for 3 sec. The mean duration of speed stability is 2 sec.
I really appreciate any help you give.
Thank you for your time.

 Accepted Answer

Sp=[3 9 1 2 3 2.5 7.8 6.5 9.3 9.1]';
[n,b] = histc(Sp,0:2:10);
c = accumarray(b,(1:numel(Sp))',[],@(x){x});
ii = cellfun(@(z)numel(unique(diff(sort(z)))),c);
ii(~ii) = 1;
out = n(1:end-1)./ii;

2 Comments

Hi Andrei,
Thank you very much. I was trying to use accumarray function as well but kinda stuck there. My function was "c=accumarray(b,Sp,[],@...)"
Would you mind to explain what does @(x){x} means? or maybe there's a link of fun index that i can use in the future? thanks

Sign in to comment.

More Answers (0)

Asked:

on 25 May 2014

Commented:

on 25 May 2014

Community Treasure Hunt

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

Start Hunting!