多个细胞的近似实验数据

时间:2017-07-12 01:52:01

标签: matlab indexing physics electronics

我有几个带有.mat-file探测数据的单元格数组。

我需要为1000个输入中的每一个找到共振频率和q因子,然后估计(近似)它们。但是,下面的代码只提供了1个fres而不是1000的值,并且没有显示(i,fres)的图。

  • FStart - 单元格数组(1000 * 1)
  • FEnd - cell array(1000 * 1)
  • Amp - 多阵列(1000 * 100)

    for i = 1:1:1000
        f1 = FStart(i):10:FEnd(i);     
        grid on  
        y1 = plot(f1,Amp(i,:)); 
        [maxValue, maxIndex] = max(Amp(i,:));  %find maximum value of amplitude for each i
        [Q_Value, Q_Index] = max(0.5*Amp(i,:));  %also tried 0.5*max() and /2
        fres = f1(maxIndex);  %by index of max amplitude value find resonance frequency
        plot(i,fres)     %plot resonance frequency for each i
        hold on
    end
    

注意:最后一个FStart值小于第一个FreqEnd值

此外,我尝试将Q因子视为:Max(水平频率= 1/2 * MaxAmplitude)-Min(水平频率= 1/2 * MaxAmplitude)

fmin = min(f2(Q_Index))
fmax = max(f2(Q_Index))

但它显示fmin = fmax

你能告诉我这里的问题是什么吗?

1 个答案:

答案 0 :(得分:1)

除了对您的答案的评论清楚地显示问题所在之外,您可以通过将plot存储为向量来从脚本中删除fres

for i = 1:1000
    f1 = FStart(i):10:FEnd(i);     
    grid on  
    y1 = plot(f1,Amp(i,:)); 
    [maxValue, maxIndex] = max(Amp(i,:));  %find maximum value of amplitude for each i
    [Q_Value, Q_Index] = max(0.5*Amp(i,:));  %also tried 0.5*max() and /2
    fres(i) = f1(maxIndex);  %by index of max amplitude value find resonance frequency    
end
plot(1:1000,fres,'ko-','LineWidth',2)