我的节目的最大的4个值会产生以下输出在一段时间寻找当地的最大
,并在一段时间后
,我想确定的最大的4个值两个冠。我设法找到最大峰值的最大4个值(参见下面的代码),这是相对简单的,因为我基本上需要找到绝对最大值。但我不知道如何找到小冠的最大4个值,我想知道是否有人可以帮助我?
这里是我用来寻找最大峰值最大4个值的C++代码:
for(i=0;i<4;i=i+1)
{
queue_matrix[i] = 0.0;
}
for(i=0;i<SPACE;i=i+1)
{
if(U_field_matrix[i][t1] > queue_matrix[0])
{
queue_matrix[0] = U_field_matrix[i][t1];
}
}
for(i=0;i<SPACE;i=i+1)
{
if((U_field_matrix[i][t1] > queue_matrix[1]) && (U_field_matrix[i][t1] < queue_matrix[0]))
{
queue_matrix[1] = U_field_matrix[i][t1];
}
}
for(i=0;i<SPACE;i=i+1)
{
if((U_field_matrix[i][t1] > queue_matrix[2]) && (U_field_matrix[i][t1] < queue_matrix[1]))
{
queue_matrix[2] = U_field_matrix[i][t1];
}
}
for(i=0;i<SPACE;i=i+1)
{
if((U_field_matrix[i][t1] > queue_matrix[3]) && (U_field_matrix[i][t1] < queue_matrix[2]))
{
queue_matrix[3] = U_field_matrix[i][t1];
}
}
对于一个连续函数,局部最大值/最小值出现在导数零。离散版本将是最大值,其中从一个值到下一个值的变化从增加到减少。查看值之间的差异可能会有所帮助。如果没有什么变化(平坦部分)或者曲线不平滑,这会变得杂乱无章,但是您可以解决这个问题。 – e0k
主要问题是决定什么构成一个波峰。 “山”是一个顶峰(高度为0.6,但宽度为40)?什么是波峰的最小高度?最大宽度?其实究竟是什么宽度? – Dialecticus
@ e0k您的评论非常有帮助,谢谢! – Hunter