【发布时间】:2015-10-16 13:14:10
【问题描述】:
绘图中有三条曲线,我无法找到这三条曲线的峰值。
如何去寻找山峰?
以下是(x,y) 的值。
>> [x,y]
ans =
1 86
5 91
8 94
12 98
15 101
19 103
21 104
23 105
28 106
28 184
31 191
34 105
39 103
41 101
41 210
42 212
43 214
44 99
45 215
47 96
48 216
49 93
51 215
54 87
54 213
56 84
56 210
60 78
65 191
66 43
68 184
69 47
71 49
73 52
73 54
77 56
82 60
85 62
87 63
89 64
92 65
98 66
104 65
107 64
109 63
112 62
114 60
119 56
125 49
127 47
130 43
绘制时将给出 3 条不同的曲线。但是,虽然找到最大值只返回最高曲线的峰值。
【问题讨论】:
-
您是否总是为每条曲线获得一个峰值?也许在每条曲线上单独使用 max() 会更容易。另外,如果您提供一些代码会很好......
-
这实际上是一组 (x,y) 值。 max() 函数只给出一条曲线。但我需要所有三个曲线。
-
你能以某种方式分割曲线,得到三个单独的曲线吗?不幸的是,Matlab 不“知道”这里有三条曲线......
-
如何分割曲线? (x,y) 值是由传感器获得的,不是用户定义的。
-
@lhcgeneva 我认为这就是重点。可以尝试拟合 3 个简单多项式的总和,但我猜这已经失败了。编辑:我意识到数据重叠,我看到了问题... Edit2 看看
cumsum(y),并将3 个移位多项式的总和拟合到那个怎么样?这有意义吗?不,我想不会……我想在这种情况下,一组样本数据会很有帮助:)
标签: matlab max matlab-figure