accmarray(sub, val), где val имеет нули
У меня есть вектор vv
содержащий данные об объеме рынка для каждого тика и вектор minuteIdx
содержащий индекс для разных минут. я использую accumarray
суммировать объем в течение каждой минуты, например так:
orgMinuteVolumes = accumarray(minuteIdx, vv); %default function is @sum
notrades = orgMinuteVolumes == 0;
minuteVolumes = orgMinuteVolumes;
minuteVolumes(notrades) = [];
Обычно это работает отлично, но иногда объемные данные не могут быть получены для всех тиков за минуту, и есть 0
s в векторе объема. Это приводит к minuteVolumes
вектор был короче, чем было бы иначе, так как я избавился от всех нулей. Например, если vv
начинается с 1
(и на первой минуте есть только один тик), затем минутный объем 175
долго, но если я изменюсь vv
начать с 0
затем minuteVolumes
только 174
долго. я хочу 0
появляться в моем minuteVolumes
вектор, чтобы не сделать его короче. Есть ли умный способ сделать это? Моя первоначальная логика заключалась в том, что для совершения сделки объем должен быть ненулевым, но я не учитывал случайные неверные данные.