用于活动识别的滑动​​窗口算法 [英] Sliding window algorithm for activity recognition

查看:111
本文介绍了用于活动识别的滑动​​窗口算法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想写一个用于活动识别的滑动​​窗口算法.

I want to write a sliding window algorithm for use in activity recognition.

训练数据是< 1xN>,所以我认为我只需要获取(说window_size=3)数据window_size并对其进行训练.我后来也想在矩阵上使用此算法 .

The training data is <1xN> so I'm thinking I just need to take (say window_size=3) the window_size of data and train that. I also later want to use this algorithm on a matrix .

我是Matlab的新手,所以我需要有关如何正确实现此方法的任何建议/指导.

I'm new to matlab so i need any advice/directions on how to implement this correctly.

推荐答案

简短答案:

%# nx = length(x)
%# nwind = window_size
idx = bsxfun(@plus, (1:nwind)', 1+(0:(fix(nx/nwind)-1))*nwind)-1;

idx将是大小为 nwind-by-K 的矩阵,其中 K 是滑动窗口的数量(即,每列包含一个滑动窗口的索引).

idx will be a matrix of size nwind-by-K where K is the number of sliding windows (ie each column contains the indices of one sliding window).

请注意,在上面的代码中,如果最后一个窗口的长度小于所需的长度,则将其删除.滑动窗口也不重叠.

Note that in the code above, if the last window's length is less than the desired one, it is dropped. Also the sliding windows are non-overlapping.

一个例子来说明:

%# 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

然后将以上内容简单地更改为:

then the above is simply changed to:

idx = bsxfun(@plus, (1:nwind)', 1+(0:(fix((nx-noverlap)/(nwind-noverlap))-1))*(nwind-noverlap))-1;


显示结果的示例:


An example to show the result:

>> nx = 100; nwind = 10; noverlap = 2;
>> idx = bsxfun(@plus, (1:nwind)', 1+(0:(fix((nx-noverlap)/(nwind-noverlap))-1))*(nwind-noverlap))-1
idx =
     1     9    17    25    33    41    49    57    65    73    81    89
     2    10    18    26    34    42    50    58    66    74    82    90
     3    11    19    27    35    43    51    59    67    75    83    91
     4    12    20    28    36    44    52    60    68    76    84    92
     5    13    21    29    37    45    53    61    69    77    85    93
     6    14    22    30    38    46    54    62    70    78    86    94
     7    15    23    31    39    47    55    63    71    79    87    95
     8    16    24    32    40    48    56    64    72    80    88    96
     9    17    25    33    41    49    57    65    73    81    89    97
    10    18    26    34    42    50    58    66    74    82    90    98

这篇关于用于活动识别的滑动​​窗口算法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆