The result looks identical to a surf plot, but now you have direct access to f and v . Here’s something less documented: surf2patch can also return face vertex colors (CData) from a surface:
% From grid data [f,v] = surf2patch(X,Y,Z); % From an existing surface object h = surf(peaks); [f,v] = surf2patch(h); 1. Exporting to Other Formats Patch structures are much easier to export to common 3D formats (OBJ, STL, PLY) than surface objects. Once you have f and v , writing a custom exporter becomes trivial. 2. Combining Multiple Surfaces Want to merge two separate surfaces into one object? Extract their vertices/faces, concatenate them, and create a single patch. 3. Advanced Lighting & Transparency Patches respond better to manual lighting and transparency settings. Converting a surface to a patch can give you finer artistic control. 4. Faster Animation Manipulating vertices directly is often faster than regenerating surface objects in a loop. A Quick Example: Peaks to Patch Let’s convert the classic peaks surface to a patch and display it. surf2patch matlab
% Display as a patch figure; patch('Faces', f, 'Vertices', v, ... 'FaceColor', 'interp', ... 'EdgeColor', 'none', ... 'FaceLighting', 'gouraud'); The result looks identical to a surf plot,
Enter surf2patch .
% Add some lighting for drama camlight headlight; lighting gouraud; axis equal; colorbar; Once you have f and v , writing
% Create surface data [X,Y,Z] = peaks(30); % Convert to patch format [f,v] = surf2patch(X,Y,Z);
