查找局部最大值的最大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注释的启发(谢谢!),以下代码将确定两个波峰的最大4个值。

for(i=0;i<SPACE;i=i+1)
{
    if((U_field_matrix[i][t1] > 0.1) && (U_field_matrix[i+1][t1]-U_field_matrix[i][t1] < 0.0))
    {
        counter1 = i;
        break;
    }
}

for(i=0;i<4;i=i+1)
{
    queue_matrix1[i] = 0.0;
}

for(i=(counter1-3);i<(counter1+4);i=i+1)
{
    if(U_field_matrix[i][t1] > queue_matrix1[0])
    {
        queue_matrix1[0] = U_field_matrix[i][t1];
    }
}

for(i=(counter1-3);i<(counter1+4);i=i+1)
{
    if((U_field_matrix[i][t1] > queue_matrix1[1]) && (U_field_matrix[i][t1] < queue_matrix1[0]))
    {
        queue_matrix1[1] = U_field_matrix[i][t1];
    }
}

for(i=(counter1-3);i<(counter1+4);i=i+1)
{
    if((U_field_matrix[i][t1] > queue_matrix1[2]) && (U_field_matrix[i][t1] < queue_matrix1[1]))
    {
        queue_matrix1[2] = U_field_matrix[i][t1];
    }
}

for(i=(counter1-3);i<(counter1+4);i=i+1)
{
    if((U_field_matrix[i][t1] > queue_matrix1[3]) && (U_field_matrix[i][t1] < queue_matrix1[2]))
    {
        queue_matrix1[3] = U_field_matrix[i][t1];
    }
}

for(i=SPACE;i>-1;i=i-1)
{
    if((U_field_matrix[i][t1] > 0.1) && (U_field_matrix[i-1][t1]-U_field_matrix[i][t1] < 0.0))
    {
        counter2 = i;
        break;
    }
}

for(i=0;i<4;i=i+1)
{
    queue_matrix2[i] = 0.0;
}

for(i=(counter2-3);i<(counter2+4);i=i+1)
{
    if(U_field_matrix[i][t1] > queue_matrix2[0])
    {
        queue_matrix2[0] = U_field_matrix[i][t1];
    }
}

for(i=(counter2-3);i<(counter2+4);i=i+1)
{
    if((U_field_matrix[i][t1] > queue_matrix2[1]) && (U_field_matrix[i][t1] < queue_matrix2[0]))
    {
        queue_matrix2[1] = U_field_matrix[i][t1];
    }
}

for(i=(counter2-3);i<(counter2+4);i=i+1)
{
    if((U_field_matrix[i][t1] > queue_matrix2[2]) && (U_field_matrix[i][t1] < queue_matrix2[1]))
    {
        queue_matrix2[2] = U_field_matrix[i][t1];
    }
}

for(i=(counter2-3);i<(counter2+4);i=i+1)
{
    if((U_field_matrix[i][t1] > queue_matrix2[3]) && (U_field_matrix[i][t1] < queue_matrix2[2]))
    {
        queue_matrix2[3] = U_field_matrix[i][t1];
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找局部最大值的最大4个值

来自分类Dev

查找局部最大值之前的正值

来自分类Dev

查找局部最小值和局部最大值

来自分类Dev

查找矩阵中两个值之间的局部最小值和局部最大值

来自分类Dev

查找10个线程的最大值

来自分类Dev

查找10个线程的最大值

来自分类Dev

在numpy数组中查找局部最大值

来自分类Dev

在MATLAB中使用逻辑索引查找局部最大值

来自分类Dev

查找给定数据集的局部最大值

来自分类Dev

查找函数的所有局部最大值

来自分类Dev

优化算法以查找所有局部最大值

来自分类Dev

如何使用fminsearch查找局部最大值?

来自分类Dev

查找一个值,该值给出采用两个输入变量的函数的局部最大值

来自分类Dev

查找键的最大值

来自分类Dev

Scala中列表的局部最大值

来自分类Dev

点云中的局部最大值

来自分类Dev

使用折叠的列表的局部最大值

来自分类Dev

查找另一个最大值查询的最大值

来自分类Dev

PHP-查找最大值/最大值

来自分类Dev

查找连续相似值的最大值

来自分类Dev

Excel查找值旁边的最大值

来自分类Dev

查找哈希值的键的最大值

来自分类Dev

查找采用两个输入变量的函数的局部最大值,每个变量具有不同的间隔

来自分类Dev

用于在图中查找局部最小值/最大值的爬山算法的时间复杂度

来自分类Dev

熊猫数据框查找局部最大值和最小值之和

来自分类Dev

递归函数查找2个整数之间的最大值

来自分类Dev

使用mysql连续查找2个最大值

来自分类Dev

在 for 循环 Python 中查找前 10 个最大值

来自分类常见问题

使Java程序查找用户输入的4个整数中的最大值