我需要从正弦波中检索绝对平均值。我被指示这样做:
您需要一个变量来存储数组中样本的总和,您应该将其初始化为零。然后遍历数组中的每个样本,获得绝对值并将其添加到总和中。
最后,您需要将最终和除以数组中的样本数量。这就得到了你想要的。
你可以平方这些值,而不是做绝对值。然后你就可以得到均方根了!
因此,我想出了以下代码:
float sum = 0;
for (i = 0; samples.length; i ++)
{
float abs = fabsf(float samples[i]);
sum += abs;
}
mean = sum / samples.length;然而,我在第一行和第二行得到了错误...有人能帮我吗?我还需要一个函数来使用NSLog返回值?
谢谢!
发布于 2016-03-01 23:43:21
在:
for (i = 0; samples.length; i ++)第二个子句应该是一个布尔表达式,如果循环应该继续执行,则该表达式为真。您还需要声明i。
我想你的意思是
for (NSInteger i = 0; i < samples.length; i ++)另外:
fabsf(float samples[i])应该是:
fabsf((float)(samples[i]))你可能还有其他错误,但是如果你需要更多帮助,你应该告诉我们你得到的编译器错误。例如:是否声明了mean?
https://stackoverflow.com/questions/35727111
复制相似问题