Data filtering one-second averages

3 views (last 30 days)
Chad Wiggins
Chad Wiggins on 28 Mar 2016
Commented: Chad Wiggins on 30 Mar 2016
I have a data set that is collected at about 6.5hz. In the processing of the data, I put the data into Excel and just do a 3 second running average for the entire data set to smooth out the data. Next I would like for a Matlab program to just pick one point per second. I was thinking it could be the first data point each second. For example, if the times for the first second are 1.088, 1.242. 1.398, 1.553, 1.706, and 1.863, I would just want to pull the row of data at 1.088 and output it into a new a variable.
What would be the best way to go about doing this. If there's code to automate the 3 second running average (about 20 lines in excel), that'd be awesome too. Thanks!
  3 Comments
Azzi Abdelmalek
Azzi Abdelmalek on 28 Mar 2016
The question is not clear, can you illustrate with an example?
Chad Wiggins
Chad Wiggins on 29 Mar 2016
Pretty much, I just want to pull one line of data each second. In the case above, I would want it to have the line where time = 0, 1.088, 2.020, 3.103, 4.033, and 5.12
This will just downsample the data and make it easier to work with and do different analysis with.
Help a little?

Sign in to comment.

Accepted Answer

MHN
MHN on 30 Mar 2016
Edited: MHN on 30 Mar 2016
Load your data in a matrix which the name is Data, then
EndSecond = 3;
NewData = zeros(EndSecond+1,5);
for i = 0:EndSecond
ind = find(Data>=i & Data<i+1,1,'first');
NewData(i+1,:) = Data(ind, :);
end
  2 Comments
Chad Wiggins
Chad Wiggins on 30 Mar 2016
Thank you. This works. Only issue is that it throws an error (Improper assignment with rectangular empty matrix.) after the line with NewData(i+1,:) = Data(ind, :);
The NewData variable looks to be correct. Will this prevent me from putting any other commands after this though?
Chad Wiggins
Chad Wiggins on 30 Mar 2016
Only change you need to make is to add in the first line of the for-loop statement. must add a "-1" to keep from getting an error
for i= 0:EndSecond-1

Sign in to comment.

More Answers (0)

Categories

Find more on Performance and Memory 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!