У меня есть 1901 г значений. Я его накопления в т, какнайти максимум нет. in 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, длина кв.кв 2000. Здесь т имеет длину в 1901 году, когда я делаю max(t)
тогда это показывая ответ. поэтому, как найти максимальное значение из первых 400 итераций. когда я делаю макс (т (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