Filtering Data

3 views (last 30 days)
ndb
ndb on 27 Apr 2011
Hello,
I am trying to compute an average and variance of a large data set (~330000 rows x 3 different columns), but I'd like to take the average and var. of every 240 entries. I think you'd call this a moving average/variance, but I'm not sure.
Can you please provide hints as to accomplish this? I'm thinking either a for-loop or using the 'filter' function, but am not sure how to approach this problem...
Thanks in advance,
Nic
  2 Comments
Andrew Newell
Andrew Newell on 27 Apr 2011
By "entries" do you mean rows or total number of variables?

Sign in to comment.

Accepted Answer

Jarrod Rivituso
Jarrod Rivituso on 27 Apr 2011
Here's a filter function example for ya...
Example code for simple moving average:
data = rand(4000,3);
window = ones(240,1)/240;
filtered_data = filter(window,1,data);
Hope this helps!
  1 Comment
Jarrod Rivituso
Jarrod Rivituso on 27 Apr 2011
After reading your additional comment, here's a fancy bit of code that you might find useful:
%create random data
data = rand(100,4);
%emulate 4th column a bit
data(1:10,4) = 1;
data(11:20,4) = 2;
%extract all rows where 4th column is equal to 1
extractedData = data(data(:,4) == 1,:)
%find variance of extracted data
var(extractedData)

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!