找到最主要的局部极小值

Find most dominant local minima

本文关键字:极小 局部 最主要      更新时间:2023-10-16

目前,下面的代码可以找到所有的局部极小值,但我感兴趣的是在1D阵列中找到最主要的/(最强的峰值)。我想知道是否有人能帮我?

for(int v = 1; v < width; v++) {
if (data[v] > data[v - 1] && data[v] > data[v + 1] )
    ml.push_back(v);
} 

我不确定您想要的是保存最佳(最小)值的位置还是保存值本身,但以下代码可以同时保存这两个值,因为vectorsdt::vector<double>类的元素:

size_t position(0); double value(vector[0]);
for (size_t i(1), N(vector.size()); i < N; ++i) {
  if (vector[i] < value) {position = i; value = vector[i]; }
}

不管怎样,我想向你推荐《数字食谱》这本教科书,它是科学计算中的参考书(http://www2.units.it/ipl/students_area/imm2/files/Numerical_Recipes.pdf)。在那里你可以找到函数最大化或最小化的完整章节。