# How to find local peaks in a 3D plane

3 vues (au cours des 30 derniers jours)
Suzan Wulms le 30 Juin 2021
Hello all,
I have a problem in automatically detection of 4 quite obviously present peaks. I transformed my data to a almost flat plane with four peaks in z-direction. I want to automatically detect the locations and corresponding datapoints of the 4 peaks. Does someone know how to solve this problem? I've added my data.
##### 1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
dpb le 30 Juin 2021
You could help by supplying the code to do what you've done so far and by telling us what, specifically is the data in the .mat file -- original, transformed by whatever it is you described, ...???

Connectez-vous pour commenter.

### Réponse acceptée

Akira Agata le 2 Juil 2021
% Arrange it as a table variable
tData = array2table(positionsplanenew,'VariableNames',{'x','y','z'});
% Extract z > 15
idx = tData.z > 15;
tData2 = tData(idx,:);
% Apply k-means clustering
rng('default');
g = kmeans(tData2{:,:},4);
tData2.group = g;
% Find maximam points for each cluster
peaks = splitapply(@max, tData2.z, tData2.group);
idx = ismember(tData2.z, peaks);
% Visualize the result
figure
scatter3(tData.x, tData.y, tData.z, '.')
hold on
scatter3(tData2.x(idx), tData2.y(idx), tData2.z(idx),'r','filled')
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Descriptive Statistics dans Help Center et File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by