我有几个带有.mat-file探测数据的单元格数组。
我需要为1000个输入中的每一个找到共振频率和q因子,然后估计(近似)它们。但是,下面的代码只提供了1个fres而不是1000的值,并且没有显示(i,fres)的图。
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
你能告诉我这里的问题是什么吗?
答案 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)