accmarray(sub, val), где val имеет нули

У меня есть вектор vv содержащий данные об объеме рынка для каждого тика и вектор minuteIdx содержащий индекс для разных минут. я использую accumarray суммировать объем в течение каждой минуты, например так:

orgMinuteVolumes = accumarray(minuteIdx, vv); %default function is @sum  
notrades = orgMinuteVolumes == 0;   
minuteVolumes = orgMinuteVolumes;
minuteVolumes(notrades) = []; 

Обычно это работает отлично, но иногда объемные данные не могут быть получены для всех тиков за минуту, и есть 0s в векторе объема. Это приводит к minuteVolumes вектор был короче, чем было бы иначе, так как я избавился от всех нулей. Например, если vv начинается с 1 (и на первой минуте есть только один тик), затем минутный объем 175 долго, но если я изменюсь vv начать с 0 затем minuteVolumes только 174 долго. я хочу 0 появляться в моем minuteVolumes вектор, чтобы не сделать его короче. Есть ли умный способ сделать это? Моя первоначальная логика заключалась в том, что для совершения сделки объем должен быть ненулевым, но я не учитывал случайные неверные данные.

0 ответов

Другие вопросы по тегам