gpt4 book ai didi

c++ - 计算总能量

转载 作者:太空狗 更新时间:2023-10-29 23:52:55 30 4
gpt4 key购买 nike

我正在研究计算 vector 总能量的函数。

从研究和另一个系统(在 MatLab 中完成)得出方程组,它采用每个 vector 求和的 abs 值。每个 vector 的 vector 总和值为“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 个 block ,每个 block 包含 600 个值。值是 double 值:

0.0078125、0.0234375、0.015625

0.0078125, 0.0234375, ..... ,

有人知道为什么我的每个值都为“0”吗?

最佳答案

Accumulate 是以下模板:

template <class InputIterator, class T>
T accumulate ( InputIterator first, InputIterator last, T init );

尝试使用 double 作为“init”:

return accumulate(blocks.begin(), blocks.end(), 0.0);

关于c++ - 计算总能量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13307813/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com