Я пишу код, который сравнивает данные вектора. Он должен подсчитать, сколько позиций (acc
) имеет одинаковые значения и сохраняет определенное значение в векторе той же длины количества позиций (n_T(acc)
).MATLAB занят, цикл работает хорошо, пока i = 29996, когда i = 29997 stay Busy
Мои данные вектор [30000 x 1]. Например, первые 80 позиций имеют одинаковое значение, следующие 60 позиций имеют одинаковое значение и т. Д., Следующие 5 позиций имеют одинаковое значение. Код работает хорошо, если я использую только 29996 значений. Я не понимаю, почему, когда я пытаюсь использовать полный вектор, MATLAB остается занятым.
Проверка моего вектора данных, я заметил, что последние 5 позиций эквивалентны [29996: 30000]. Это может быть причина, и что я должен изменить?
Ниже приводится код
%========================================================
%ac: data vector`
%acc1: accumulator which count how much positions have the same value
%n_T: vector which presents the values I need, in the same positions the data is equal
%m: show a value where i should begin
%========================================================
i=m; %previously used`
fv=length(ac)
while i<fv %29996
acc1=0;
for i=m+1:fv
if ac(i)==ac(i-1)
acc1=acc1+1; % count how much positions are equals
else
m=i;
break
end
end
mi=m-acc1; %define where the data n_T should begin
for i=mi:m
n_T(i)=tm/acc1; %create a vector with length [acc x1] begining in mi and finishing in m
end
m=i;
end
plot(n_T)
Что означает '% m: показать значение, где я должен начинать? –