Triangle Subdivide (vectorized/fast)

vectorized 4x triangle subdivision: subdivide_tri.m

You are now following this Submission

This function subdivides the faces in a given mesh. The newly created vertices (those that are unique) are appended to the input vertices list. A new list of triangle faces is built.

There are other functions out there that do this in matlab, but the few I saw used for-loops and arrays growing inside of the loops, which doesn't work when the mesh is huge. This function is fully vectorized and clears memory while executing when things are no longer needed. It is fairly short/compact.

The orientations (CCW/CW) of faces should be preserved by the subdivision.

The screenshot here has 1 million faces and 300,000 vertices after subdivision, executes in about 1 second (on quad-core 8GB ram machine).

Limitations: only triangles, input args not checked now.

Cite As

Peter Karasev (2026). Triangle Subdivide (vectorized/fast) (https://se.mathworks.com/matlabcentral/fileexchange/25961-triangle-subdivide-vectorized-fast), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.0.0.0