gpt4 book ai didi

excel - 如何计算图中峰值的数量? -图分析-

转载 作者:行者123 更新时间:2023-12-02 01:28:25 25 4
gpt4 key购买 nike

我的曲线包含某些峰值 - 我想知道如何获取这些峰值的数量。

示例数据:

0.10    76792
0.15 35578
0.20 44675
0.25 52723
0.30 27099
0.35 113931
0.40 111043
0.45 34312
0.50 101947
0.55 100824
0.60 20546
0.65 114430
0.70 113764
0.75 15713
0.80 83133
0.85 79754
0.90 17420
0.95 121094
1.00 117346
1.05 22841
1.10 95095
1.15 94999
1.20 18986
1.25 111226
1.30 106640
1.35 34781
1.40 66356
1.45 68706
1.50 21247
1.55 117604
1.60 114268
1.65 26292
1.70 88486
1.75 89841
1.80 49863
1.85 111938

第一列是 X 值,第二列是 y 值。

我想编写一个宏或公式来告诉我该图中有多少个峰值。

注意:这个图实际上是从 matlab 绘制和导出的,所以如果有一种方法我可以告诉我的代码从 matlab 为我做这件事,那就太棒了!

最佳答案

如果您的数据位于 A1:B36 中,则此公式=SUMPRODUCT(--(B2:B35>B1:B34),--(B2:B35>B3:B36))
返回 11 个峰值

它检查是否

  • B2 高于 B1 和 B3,如果是这样,则将其视为峰值
  • 如果 B3 高于 B2B4,如果是这样,则将其视为峰值,依此类推

enter image description here

[更新:添加了 VBA 请求]

Sub GetMax()
Dim chr As ChartObject
Dim chrSeries As Series
Dim lngrow As Long
On Error Resume Next
Set chr = ActiveSheet.ChartObjects(1)
Set chrSeries = chr.Chart.SeriesCollection(1)
On Error GoTo 0

If chrSeries Is Nothing Then Exit Sub

For lngrow = 2 To UBound(chrSeries.Values) - 1
If chrSeries.Values(lngrow) > chrSeries.Values(lngrow - 1) Then
If chrSeries.Values(lngrow) > chrSeries.Values(lngrow + 1) Then
chrSeries.Points(lngrow).ApplyDataLabels
With chrSeries.Points(lngrow).DataLabel
.Position = xlLabelPositionCenter
.Border.Color = 1
End With
End If
End If
Next
End Sub

关于excel - 如何计算图中峰值的数量? -图分析-,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8979752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com