概述
简短的回答:
%# nx = length(x)
%# nwind = window_size
idx = bsxfun(@plus, (1:nwind)', 1+(0:(fix(nx/nwind)-1))*nwind)-1;
idx将是一个大小为nwind-by-K的矩阵,其中K是滑动窗口的数量(即每列包含一个滑动窗口的索引).
请注意,在上面的代码中,如果最后一个窗口的长度小于所需的长度,则将其删除.滑动窗也是不重叠的.
举例说明:
%# lets create a sin signal
t = linspace(0,1,200);
x = sin(2*pi*5*t);
%# compute indices
nx = length(x);
nwind = 8;
idx = bsxfun(@plus, (1:nwind)', 1+(0:(fix(nx/nwind)-1))*nwind)-1;
%'# loop over sliding windows
for k=1:size(idx,2)
slidingWindow = x( idx(:,k) );
%# do something with it ..
end
%# or more concisely as
slidingWindows = x(idx);
编辑:
对于重叠窗口,请:
noverlap = number of overlapping elements
然后上面简单地改为:
<最后
以上就是追寻蜡烛为你收集整理的matlab滑动时窗算法,matlab – 用于活动识别的滑动窗口算法的全部内容,希望文章能够帮你解决matlab滑动时窗算法,matlab – 用于活动识别的滑动窗口算法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复