Pho*_*rce 2 c++ audio sum vector matrix
我正在研究一个计算向量总能量的函数.
从研究和另一个系统(在MatLab中完成),方程式设置出来,它取每个向量求和的abs值.每个向量的向量总和值为"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;
}
Run Code Online (Sandbox Code Playgroud)
}
double Audio::energy(vector<double>&blocks)
{
return accumulate(blocks.begin(), blocks.end(), 0);
}
Run Code Online (Sandbox Code Playgroud)
共有96个块,每个块包含600个值.值是双倍的:
0.0078125,0.0234375,0.015625
0.0078125,0.0234375,.....,
任何人都有任何想法,为什么我为每个人得到"0"的价值?
累计是以下模板:
template <class InputIterator, class T>
T accumulate ( InputIterator first, InputIterator last, T init );
Run Code Online (Sandbox Code Playgroud)
尝试使用double作为'init':
return accumulate(blocks.begin(), blocks.end(), 0.0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
181 次 |
| 最近记录: |