如何从表中删除特定数据

时间:2019-07-16 08:38:32

标签: matlab

我有一张长桌子,上面有两行,分别对应于某些音乐信号的ft峰值的幅度和频率。我想找出不在任何音符频率范围内的峰值。

我有另一个充满了有效频率的表。我尝试使用ismembertol,但是“ A和B必须都是表,或者都是时间表”。过来。删除数据是另一个问题,因为我所看到的唯一示例是来自您知道数据的行和列的情况。

[x,Fs]=audioread('sweeper.wav');
x = .95.*x./max(abs(x));
Z = fft(x);
[pks,locs]=findpeaks(abs(Z),'MinPeakDistance',100,'MinPeakHeight',0.015);

f=440;
F=table(f);
for n=-57:50
   f=440*(2^(n/12));
   Tadd=table(f);
   F=[F;Tadd];
end

L=[pks,locs];
L=L(:,ismembertol(L,F,10));

我希望L是2列的表,其中locs列仅包含也在F中的元素。要清楚一点,如果locs中的数据无效,我希望删除该行。

0 个答案:

没有答案