我正在研究一个计算向量总能量的函数。
通过研究和另一个系统(在 MatLab 中完成),方程组得出,它采用每个向量的绝对值求和。每个向量的向量总和值为“0”,代码如下:
vector<double> Audio::filter(vector<iniMatrix>&blocks, double sumThres, double ZeroThres)
{
vector<double> totalEnergy;
for(unsigned i=0; (i < blocks.size()); i++)
{
totalEnergy.push_back(abs(this->energy(blocks[i])));
}
for(unsigned i=0; (i < totalEnergy.size()); i++)
{
cout << totalEnergy[i] << endl;
}
}
double Audio::energy(vector<double>&blocks)
{
return accumulate(blocks.begin(), blocks.end(), 0);
}
有 96 个块,每个块包含 600 个值。值是双倍的:
0.0078125、0.0234375、0.015625
0.0078125、0.0234375、……、
任何人都知道为什么我每个都得到“0”值?