如何在MATLAB中将值存储在数组中

时间:2013-09-30 06:48:45

标签: matlab

假设我对一组数据执行了FFT,并且我有频率和幅度值。 我想在每个FFT块中找到最高幅度。我需要找到至少大于最大振幅0.4倍的点的频率和幅度,并将它们保存在一个数组中。我怎么能这样做? 我试着通过以下方法获得一个空矩阵....

% the code after FFT
peak_points = [];

    fmin = 60;
    fmax = 1000;
    region_of_interest = fmax>f & f>fmin;
    froi = f(region_of_interest);

    [p_max,loc] = max(seg_fft2(region_of_interest));

    p_max;
    fpeaks = froi(loc);

    [points, locatn] = findpeaks(seg_fft2(region_of_interest));

    if points > 0.4*p_max
        peak_points = [peak_points ; points locatn]
    end

我对数组很不好..所以我似乎无法弄清楚这一点。非常感谢别人的帮助...提前致谢...

1 个答案:

答案 0 :(得分:1)

您打算在感兴趣区域逻辑阵列上执行seg_ffr2还是在froi上执行?

或者点可能是矢量,你应该有:

aboveMax = points > 0.4*p_max;
if any(aboveMax)   
        peak_points = [peak_points ; points(aboveMax) locatn(aboveMax)]
end