Вот еще один:
ValidFirings = ((DwellTimes > 30/(24*60*60)) | (GroupCount > 1));
for i = length(ValidFirings):-1:2
if(~ValidFirings(i))
DwellTimes(i-1) = DwellTimes(i)+DwellTimes(i-1);
GroupCount(i-1) = GroupCount(i)+GroupCount(i-1);
DwellTimes(i) = [];
GroupCount(i) = [];
ReducedWallTime(i) = [];
ReducedWallId(i) = [];
end
end
Похоже, что цель состоит в суммировании «времени задержки» на основе того, считается ли срабатывание датчика действительным.Таким образом, у меня есть вектор срабатываний датчика, который я прошёл назад и суммировал в предыдущем ряду, если текущий ряд не помечен как действительный.
Я могу визуализировать это в C / C ++, но я не знаю, какперевести его в лучшую векторную запись Matlab.В нынешнем виде этот цикл очень медленный.
РЕДАКТИРОВАТЬ: Могу ли я использовать некоторую форму DwellTimes = DwellTimes (cumsum (ValidFirings))??