surfir - Surface plot from irregular data points

surfir takes vectors of data points x,y,z and creates a surface plot - similar to surf but for irregularly spaced data.
861 Downloads
Updated Mon, 16 Mar 2020 15:47:48 +0000

View License

This is a very common problem among Matlab users: You have some values of a function, say z=z(x,y) at some arbitrarily distributed points (x,y). The points are not evenly spaced and the domain may even be non-convex. You want to visualize the function as one of those nice surface plots.
'surf', however, requires the data to come in the form of a mesh grid, which is not easy to obtain if you don't have an explicit form of the function z(x,y). You can use a simple scatter plot of the data points, but that doesn't usually look nice. You can also triangulate between the data points, but many users struggle with using this approach, especially the constrained triangulation required for non-convex domains.

This function 'surfir' is intended as a straightforward-to-use solution for surface plots from irregular data. Inputs are vectors x,y,z containing the data points. surfir uses the Matlab function 'boundary' to determine the boundary of the domain. It then performs a constrained Delaunay triangulation inside the domain and plots the triangulated surface with the values of z interpolated between the data points.

The folder contains the function surfir as well as two examples of a convex and a concave domain.

Cite As

Hauke Gravenkamp (2024). surfir - Surface plot from irregular data points (https://www.mathworks.com/matlabcentral/fileexchange/74544-surfir-surface-plot-from-irregular-data-points), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2019b
Compatible with R2014b and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes
1.0.0