Convert surface data to patch data
fvc = surf2patch(Z)
fvc = surf2patch(Z,C)
fvc = surf2patch(X,Y,Z)
fvc = surf2patch(X,Y,Z,C)
fvc = surf2patch(...,'triangles')
[f,v,c] = surf2patch(...)
fvc = surf2patch(h)
converts the geometry and color data from the surface object identified by the handle h into patch format and returns the face, vertex, and color data in the struct fvc. You can pass this struct directly to the patch command.
Use the sphere command to generate the XData, YData, and ZData of a surface. Then, calculate the patch data. Pass the ZData (z) to surf2patch as both the third and fourth arguments � the third argument is the ZData and the fourth argument is taken as the CData. You must do this since the patch command does not automatically use the z-coordinate data for the color data, as does the surface command.
Since patch is a low-level command, you must set the view and shading to produce the same results produced by the surf command.
[x,y,z] = sphere; figure patch(surf2patch(x,y,z,z)); shading faceted; view(3)
Calculate face, vertex, and color data from a surface whose handle has been passed as an argument.
figure s = surf(peaks); patch(surf2patch(s)); delete(s) shading faceted; view(3)