Project a vector onto a plane defined by a normal vector.
Updated 5 Aug 2020

View License

Given a vector/matrix and a vector/matrix of vectors normal to any plane in the same linear space, project the vector(s) onto the plane(s) defined by the normal vector(s). Return the coordinates of the new projected vector(s). Written by Seth B. Wagenman, based on Taylor Thullen's code and the following web link:

Cite As

Seth Wagenman (2024). planeProjection (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2019b
Compatible with any release
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

Made 3-D orientation checks more robust and used unit3DNonZeroVectorByRow instead of prior version of that function by same author.


Consolidated initial error-checking of arguments, cleaned up code and added more comments.


Removed requirement to pass unit normal vector; OK to pass any normal vector because it will be normalized in the function. Also edited calculation of projected image to form originally coded by Taylor Thullen.


Check for unit length applies to matrices of vectors passed in second argument now. Also added error for case when a 3x3 matrix is passed, preventing determination of which dimension is the spatial one.


added semicolon to suppress output


added absolute value to line checking for unit length of normal vector