【发布时间】:2018-10-10 01:33:04
【问题描述】:
我需要在 3D 冲浪图中找到几个 (~5) 峰;尝试了 imregionalmax ,但它给了我太多的最大值,我找不到控制它的方法。
我猜我需要找到的实际峰值在我的 z 数组中,即 (x x y),但 findpeaks 仅适用于向量数组。有替代方案吗?我读过一些关于函数挤压的东西——但不完全确定如何使用它。
链接是图表示例,数据点是我需要知道的峰值示例。
如果有人能对此有所了解,那就太好了,谢谢!
我用于 imregionalmax 的 MCVE 是
Z = peaks;
y = linspace(1,100,49);
x = linspace(10,20,49);
[X, Y] = meshgrid(x,y);
figure
surf(X, Y, Z,'EdgeColor','none','FaceColor','interp');
maxZ = imregionalmax(Z);
plot3(X(maxZ),Y(maxZ),Z(maxZ),'r*','MarkerSize',12)
【问题讨论】:
-
您能否与
imregionalmax分享您迄今为止所做的尝试以及结果与预期结果有何不同?我用peaks和imregionalmax对其进行了测试,发现局部最大值没有问题。 -
嗨亚历克斯,我没有使用峰值,只有 imregionalmax。这就是我所拥有的,1drv.ms/u/s!Al6StzzA7jNMmkXZZv91tk-NWU1H。
-
很抱歉给您带来了困惑。我使用
peaks作为测试数据,因为我没有你的数据。您可以发布您的尝试并使用峰值而不是真实数据。这称为最小、完整、可验证示例 (MCVE),是提出好问题的先决条件。 -
我不确定如何在 stackoverflow 上进行格式化,但这是一个添加到问题中的 MCVE。它有效,没问题,我的数据也是如此。但我遇到的问题是它发现了太多的峰,正如您在上一个链接的 matlab 图中看到的那样!
标签: matlab