距离全球最大的连续波型和明年最大/最小

3视图(30天)
我有一组波模式(一个例子波模式包含在最高峰可见大约x = 420)与不同的波峰和波谷交替,已经能够确定的全球最大使用“max”波模式。我现在需要确定这个全球最大的距离下一个连续的局部最小值之后立即和距离下一个连续的局部最大值。
我用findpeaks找到积极的和消极的高峰使用的代码如下:
pospks = findpeaks (h_dat(习结束,(我):xf(我)));
negpks = findpeaks (((h_dat(最终,xi(我):xf(我)))))
因为消极的版本应该返回最小值。h_dat(习结束,(我):xf(我)只是一个代码返回波模式根据我的数据(对应于多个波模式和不同的参数在“结束时间”已经达到一个稳定状态时对应的稳定的全球最大)。我试图使用排序函数排序如果有帮助,但我不确定,因为它将把它们按升序/降序排列,你可以看到我的形象的高度局部极大值和极小值往往是任意所以排序按升序/降序将不能保证找到的距离最高峰(称之为hmax)到下一个最大值或最小值。我的想法是使用距离函数找到距离hmax pospks然后到下一个最近的成员的亲密成员negpks为了找到相关距离,但研究和仍然不确定如何做到这一点(如果这一切都是很简单的道歉与Matlab我很新)。

答案(1)

大卫·芬克
大卫·芬克 2017年7月17日
要发现下一个全球最大最小值和最大值后,使用“findpeaks”功能,但限制了数据在全球最大的发生。参阅附上的图片与此代码的输出。
%样本数据:
x = 0:0.1:20;
y = sin (x)。* exp (abs(10倍)/ 10);
情节(x, y);
持有;
%找到全球最大及其指数
[globalMaxY, globalMaxIndex] = max (y);
globalMaxX = x (globalMaxIndex);
%绘制全球最大的红色
情节(globalMaxX globalMaxY,“标记”,“o”,“MarkerSize”10“MarkerEdgeColor”,“红色”);
%创建的一个子集的数据仅限于在全球最大
xSubset = x (globalMaxIndex:结束);
ySubset = y (globalMaxIndex:结束);
%找到最小峰值在全球最大
[negHeights, xMinLocations] = findpeaks (-ySubset xSubset);
minPeakX = xMinLocations (1);
minPeakY = -negHeights (1);
%的阴谋下最低蓝色
情节(minPeakX minPeakY,“标记”,“o”,“MarkerSize”10“MarkerEdgeColor”,“蓝”);
%找到最大峰值在全球最大
[高度,xMaxLocations] = findpeaks (ySubset xSubset);
maxPeakX = xMaxLocations (1);
maxPeakY =山庄(1);
%的阴谋下一个最大的绿色
情节(maxPeakX maxPeakY,“标记”,“o”,“MarkerSize”10“MarkerEdgeColor”,“绿色”);
%从这里可以计算x和y之间的距离给定的最大值和最小值。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!