Мне нужно найти несколько (~ 5) пиков на 3D-графике для серфинга; попробовал imregionalmax, но он дает мне слишком много максимумов, и я не могу найти способ его контролировать.
Я предполагаю, что фактические пики, которые мне нужно найти, находятся в моем массиве z, который (x по y), но findpeaks работает только для векторного массива. Есть ли альтернатива? Я прочитал кое-что о функции squeeze, но не совсем уверен, как ее использовать.
Ссылка представляет собой пример графика, а точки данных - примеры пиков, которые мне нужно знать.

Если бы кто-нибудь мог пролить свет на это, было бы здорово, спасибо!
MCVE, который я использовал для imregionalmax, равен
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)