Gram-Schmidt orthogonalization

Version (1.69 KB) by Mo Chen
Gram-Schmidt orthogonalization


Updated 9 Mar 2016

View License

This package implements the Gram-Schmidt algorithm and Modified Gram-Schmidt algorithm (MGS improve numerical stability over GS) for orthogonalizing or orthonormalizing vectors.
Gram-Schmidt algorithm factorizes a matrix X into two matrix Q and R, where Q is an orthogonal or orthonormal matrix and R is a upper triangular matrix and X=Q*R. The difference between orthogonal and orthonormal matrix is that for an orthonormal matrix, each column is orthogonal to others and has unit length.

This package contains following four functions:
gsog.m: Gram-Schmidt orthogonalization
gson.m: Gram-Schmidt orthonormalization which produces the same result as [Q,R]=qr(X,0)
mgsog.m: Modified Gram-Schmidt orthogonalization
mgson.m: Modified Gram-Schmidt orthonormalization which produces the same result as [Q,R]=qr(X,0)

This package is now a part of the PRML toolbox (

Cite As

Mo Chen (2023). Gram-Schmidt orthogonalization (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2016a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired by: Pattern Recognition and Machine Learning Toolbox

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes