# Filtering Data

3 views (last 30 days)
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...
Nic
##### 2 CommentsShowHide 1 older comment
Andrew Newell on 27 Apr 2011
By "entries" do you mean rows or total number of variables?

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!
Jarrod Rivituso on 27 Apr 2011
%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)