Difference between convhull() and convhulln()?
6 次查看(过去 30 天)
显示 更早的评论
In MATLAB's function libraries, there are 2 functions that achieve descriptively the same purpose: 1) convhull() 2) convhulln()
I notice that these 2, when applied to the same set of input, gives me slightly different answers for volume (negligible error, but I am confused why there is a difference since I thought the algorithm gives an EXACT volume). And for some sets of vertices, convhulln() outputs an error while convhull() works.
Can someone explain to me the difference between the two?
0 个评论
回答(3 个)
Walter Roberson
2015-7-11
convhulln can operate in higher dimensional spaces.
Negligible error would be due to floating point roundoff, probably.
0 个评论
Image Analyst
2015-7-11
convhull() operates on 2D data - points in an infinitely thin plane. How are you computing the volume from that? It won't have a volume. Or a volume of zero.
convhulln operates on higher dimensional data. In 3D it would be like putting a tight balloon around your points. It would return the points that are "pointy" in your balloon envelope. How do you compute the volume from that?
John D'Errico
2015-7-12
Welcome to the wonderful, wacky world of floating point arithmetic.
There is no such thing as an "exact" computation when done in floating point arithmetic by two distinct code sequences. That you get subtly (though negligibly) different results when two different computations are applied is no surprise at all. Many such mathematically, theoretically identical operations, when implemented in floating point arithmetic, will fail to yield numerically identical results.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Bounding Regions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!