matlab用max函数输出的横坐标有问题

matlab用max函数最后输出的总是 4.7816e+04

img

img

img

输出是错误的

img


但画的频谱图是对的

img

请问如何改才能得到正确的pos和freq值

因为你的频率f区域是左右对称的,前面的1:floor((n-1)/2)就是画一半,然后matlab把最大值找到另外一半了,所以你得到了 4.7816e+04,正确的打开方式是:

[max, pos] = max(zzf);

改成

[max, pos] = max(zzf(1:floor((n-1)/2)));

这样就可以啦,如有帮助还望题主给个宝贵的采纳支持一下答主答题哟,谢谢啦