vv
各ティックの市場ボリューム データを含むベクトルと、異なる minuteIdx
分のインデックスを含むベクトルがあります。accumarray
次のように、各分内のボリュームを合計するために使用しています。
orgMinuteVolumes = accumarray(minuteIdx, vv); %default function is @sum
notrades = orgMinuteVolumes == 0;
minuteVolumes = orgMinuteVolumes;
minuteVolumes(notrades) = [];
通常は問題なく動作しますが、1 分間にすべてのティックのボリューム データを取得できず0
、ボリューム ベクトルに s が含まれることがあります。これにより、minuteVolumes
すべてのゼロを削除したため、ベクトルが他の場合よりも短くなります。たとえばvv
、a で始まる場合1
(最初の 1 分間にティックが 1 つしかない場合)、minuteVolumes は長くなりますが、a で始まる175
ように変更すると、長くなるだけです。ベクトルを短くするのではなく、ベクトルにaを表示したい。これを実現する賢い方法はありますか?私の当初の論理では、取引が発生するためにはボリュームがゼロではない必要がありましたが、時折発生する悪いデータは考慮していませんでした。vv
0
minuteVolumes
174
0
minuteVolumes