0

我一直在 MatLab 中使用 findpeaks 来定位波形的最大值和最小值,没有问题,但在过去 20 分钟左右出现错误:

???下标索引必须是实数正整数或逻辑数。

出现了一个我不知道为什么。即使用测试数据尝试简单的练习也会导致同样的错误。例如,如果我有数据集:

test = [ 0.1 0.5 0.9 0.5 0.2 0.6 1.0 0.7 0.3 0.1 ]

并使用了代码:

peaks = test(findpeaks(test));

我希望结果:

peaks = [0.1 0.9 0.2 1.0 0.1 ]

但由于某种原因,情况不再如此。

请指教。

4

1 回答 1

1

Findpeaks返回峰值,而不是它们的索引。试试这个。

peaks=findpeaks(test)

如果您还想找到局部最小值,

peaks = [findpeaks(test) -findpeaks(-test)]
于 2012-04-16T20:54:34.490 回答