How to calculate mean to an equal area in Matlab?

3 views (last 30 days)
I have 900000 time data and 900000 speed data. I need to calculate the mean speed for each 30secs and plot them. How can I get that? Thank you!
  2 Comments
James Tursa
James Tursa on 22 Feb 2021
Running average, or average of blocks? Is the time data equally spaced?
Xuefei Sun
Xuefei Sun on 22 Feb 2021
Yes, the time data is equally spaced from 1 sec to 900000 sec. And I should calculate mean speed for each 3 sec. Like from 1 to 3, 4 to 6, 7 to 9, ect. And plot them

Sign in to comment.

Accepted Answer

James Tursa
James Tursa on 22 Feb 2021
Edited: James Tursa on 22 Feb 2021
n = 3; % or whatever number of samples you need, must be divisible into size of data
time_average = mean(reshape(time_data,n,[]));
speed_average = mean(reshape(speed_data,n,[]));
plot(time_average,speed_average)
  3 Comments
Xuefei Sun
Xuefei Sun on 22 Feb 2021
But I still have another problem. If I block the time, it seems like the mean speed responding to a certain time(the mean time). But I want to plot the speed sustained in that 3 sec. I mean I want to plot a stragnt line in each 3 sec. Could you teach me how to do that?
Xuefei Sun
Xuefei Sun on 22 Feb 2021
I delete mean for the time_average, and I got it then. Thank you so much.
time_average = reshape(time_data,n,[]);
speed_average = mean(reshape(speed_data,n,[]));
plot(time_average,speed_average)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!