MATLAB: How to run a sliding window over matrix

arraymatrixsliding window

.

Best Answer

Norman - I think that you just want to set the step size in your for loop. Something like
for i = 1 : 100: size(dataSet,2)
% do something


end
A simplified example could be
A = rand(63,2000);
w = 500;
v = 100;
for k=1:100:size(A,2)
if (k+w+-1) > size(A,2) || (k+v+w-1) > size(A,2)
break;
end
dataA = A(:,k:k+w-1);
fprintf('a) %d:%d ',k,k+w-1);
% do something
dataB = A(:,k+v+w:k+v+w-1);
% do something
fprintf('b) %d:%d\n',k+w,k+v+w-1);
end
with output
a) 1:500 b) 501:600
a) 101:600 b) 601:700
a) 201:700 b) 701:800
a) 301:800 b) 801:900
a) 401:900 b) 901:1000
a) 501:1000 b) 1001:1100
a) 601:1100 b) 1101:1200
a) 701:1200 b) 1201:1300
a) 801:1300 b) 1301:1400
a) 901:1400 b) 1401:1500
a) 1001:1500 b) 1501:1600
a) 1101:1600 b) 1601:1700
a) 1201:1700 b) 1701:1800
a) 1301:1800 b) 1801:1900
a) 1401:1900 b) 1901:2000