【发布时间】:2016-05-18 04:31:44
【问题描述】:
我有以下代码
x=randi([1 150],1,400);
d=max(x);
m=numel(x);
y=zeros(d,1);
p=zeros(d,d);
for k=1:m-1
y(x(k))=y(x(k))+1;
p(x(k),x(k+1))=p(x(k),x(k+1))+1;
end
p=bsxfun(@rdivide,p,y);
p(isnan(p)) = 0;
j=prod(p(p~=0));
[~,~,idx] = unique(x);
q=prod(hist(idx,1:max(idx))/numel(x));
s=log(j);
l=log(q);
g=s+l
在上面的代码中随机编号。从 1 到 150 生成,序列长度为 400。最后我得到输出 g,假设随机没有。代码生成的序列是
x=[5,96,96,55,55,65,65,65,12,12,6,7,9,9,9,31,31,14,26,26,26,101,101,145,145,...]
所以代码给出了整个序列的输出,但我想要输出大小为 10 的滑动窗口,即序列的 o/p
[5,96,96,55,55,65,65,65,12,12],
然后跳过第一个元素并添加下一个元素,因此窗口大小应该保持不变,即
[96,96,55,55,65,65,65,12,12,6],
然后下一个
[96,55,55,65,65,65,12,12,6,7],
同样到最后,怎么做。
【问题讨论】: