我需要从正弦波中检索绝对平均值。我被指示这样做:
您需要一个变量来存储数组中的样本总和,您应将其初始化为零。然后遍历数组中的每个样本,获取绝对值并将其添加到总和中。
最后,您需要将最终总和除以数组中的数字样本。那就是你的意思。
不是做绝对的,而是可以对值进行平方。然后你得到均方根!
结果,我提出了这个代码:
float sum = 0;
for (i = 0; samples.length; i ++)
{
float abs = fabsf(float samples[i]);
sum += abs;
}
mean = sum / samples.length;
然而,我在第一行和第二行遇到错误......任何人都可以帮助我吗?我还需要一个函数来使用NSLog返回值吗?
谢谢!
答案 0 :(得分:1)
在:
for (i = 0; samples.length; i ++)
第二个子句应该是一个布尔表达式,如果循环应该继续,则该表达式为真。您还需要声明i
。
我认为你的意思是
for (NSInteger i = 0; i < samples.length; i ++)
另外:
fabsf(float samples[i])
应该是:
fabsf((float)(samples[i]))
您可能还有其他错误,但如果您需要更多帮助,则应告诉我们您遇到的编译器错误。例如:mean
是否已声明?