我有1901克的值。我積累它在T作爲找到最大號碼。在matlab中
xr=[qq] ; %Training and Anomaly Samples in sequence
z=numel(xr);
N=100;
t=zeros(1,z-N+1);
for n5=0:z-N;
x=xr(1+n5:N+n5);
d=max(x);
m1=numel(x);
y=zeros(d,1);
p=zeros(d,d);
for k=1:m1-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;
b2=sum(log(p(p~=0)));
[~,~,idx] = unique(x);
q=prod(hist(idx,1:max(idx))/numel(x));
l=log(q);
g1=b2+l;
t(n5+1)=g1; %log value
end
在由其他代碼生成上述QQ
和在1到100之間有一個整數,QQ長度是2000。這裏T已在1901年長度時我做max(t)
然後它顯示答案。所以如何在前400次迭代中找到最大值。當我做最大(T(1:400)),其示值誤差
Subscript indices must either be real positive integers or logicals. so how his error occurs.
您確定您的索引從1開始?我運行了代碼,它適用於我。唯一的問題可能是從1:60開始的一些指數缺失值 – Harjatin
t(n + 1)= g,並且n從0開始,所以t的值從1開始並且所有指數都存在。 –
你能用完整的代碼更新問題嗎?我不能在這裏解決這個問題,因爲如果n是一個整數並且所有的索引都存在,這可以正常工作。 – Harjatin