Hi,
I have a set of data points in 3D space (a matrix of (n x 3), in which each row corresponds to a point) that are extracted from a stl file and all together describe an irregular surface. I want to find the extrema of this surface. Is there anyway to do this in matlab? Attached is a sample file.
I know using the approach described in the following post we can find the extrema but the problem is that my data points are not continous and I cannot use meshgrid.
Thanks.

6 commentaires

Nick Keepfer
Nick Keepfer le 18 Juin 2020
I think you are asking for what is known as a convex hull.
If so, there is a built-in function inside Matlab called convhull, which would be ideal for you.
Memo Remo
Memo Remo le 18 Juin 2020
Hi Nick,
Thanks for the reply.
No. My geometry is a surface not a volume.
For the extrema in the z axis you can use
scatter(x,y,20,c,'filled')
Here, x, y are the coordinates of your points in x and y, and the colour c can be the height in z.
Memo Remo
Memo Remo le 18 Juin 2020
Thanks for your help. It seemed very interesting.
However, it converts the 3D data to 2D and finds minimum or maximum z values, which doesn't correspond the local extrema.
darova
darova le 19 Juin 2020
Can you calculate normal vector of each face? Find vector v = [0 0 1]
Memo Remo
Memo Remo le 19 Juin 2020
Thanks Darova,
I think I should be able o do that. However, it is not very easy to do so.
You mean I should search for those locations that has minimum variations in the direction of the normal vector?

Connectez-vous pour commenter.

 Réponse acceptée

darova
darova le 20 Juin 2020
Modifié(e) : darova le 20 Juin 2020

0 votes

Here is the idea:

1 commentaire

Memo Remo
Memo Remo le 20 Juin 2020
Great!
"griddata" was the function I was looking for.
Thanks!

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by