Main Content

norm

Vector and matrix norms

Description

example

n = norm(v) returns the Euclidean norm of vector v. This norm is also called the 2-norm, vector magnitude, or Euclidean length.

example

n = norm(v,p) returns the generalized vector p-norm.

example

n = norm(X) returns the 2-norm or maximum singular value of matrix X, which is approximately max(svd(X)).

n = norm(X,p) returns the p-norm of matrix X, where p is 1, 2, or Inf:

example

n = norm(X,"fro") returns the Frobenius norm of matrix or array X.

Examples

collapse all

Create a vector and calculate the magnitude.

v = [1 -2 3];
n = norm(v)
n = 3.7417

Calculate the 1-norm of a vector, which is the sum of the element magnitudes.

v = [-2 3 -1];
n = norm(v,1)
n = 6

Calculate the distance between two points as the norm of the difference between the vector elements.

Create two vectors representing the (x,y) coordinates for two points on the Euclidean plane.

a = [0 3];
b = [-2 1];

Use norm to calculate the distance between the points.

d = norm(b-a)
d = 2.8284

Geometrically, the distance between the points is equal to the magnitude of the vector that extends from one point to the other.

a=0iˆ+3jˆb=-2iˆ+1jˆd(a,b)=||b-a||=(-2-0)2+(1-3)2=8

Calculate the 2-norm of a matrix, which is the largest singular value.

X = [2 0 1;-1 1 0;-3 3 0];
n = norm(X)
n = 4.7234

Calculate the Frobenius norm of a 4-D array X, which is equivalent to the 2-norm of the column vector X(:).

X = rand(3,4,4,3);
n = norm(X,"fro")
n = 7.1247

The Frobenius norm is also useful for sparse matrices because norm(X,2) does not support sparse X.

Input Arguments

collapse all

Input vector.

Data Types: single | double
Complex Number Support: Yes

Input array, specified as a matrix or array. For most norm types, X must be a matrix. However, for Frobenius norm calculations, X can be an array.

Data Types: single | double
Complex Number Support: Yes

Norm type, specified as 2 (default), a positive real scalar, Inf, or -Inf. The valid values of p and what they return depend on whether the first input to norm is a matrix or vector, as shown in the table.

Note

This table does not reflect the actual algorithms used in calculations.

pMatrixVector
1max(sum(abs(X)))sum(abs(v))
2 max(svd(X))sum(abs(v).^2)^(1/2)
Positive, real-valued numeric scalarsum(abs(v).^p)^(1/p)
Infmax(sum(abs(X')))max(abs(v))
-Infmin(abs(v))

Output Arguments

collapse all

Norm value, returned as a scalar. The norm gives a measure of the magnitude of the elements. By convention:

  • norm returns NaN if the input contains NaN values.

  • The norm of an empty matrix is zero.

More About

collapse all

Euclidean Norm

The Euclidean norm (also called the vector magnitude, Euclidean length, or 2-norm) of a vector v with N elements is defined by

v=k=1N|vk|2.

General Vector Norm

The general definition for the p-norm of a vector v that has N elements is

vp=[k=1N|vk|p]1/p,

where p is any positive real value, Inf, or -Inf.

  • If p = 1, then the resulting 1-norm is the sum of the absolute values of the vector elements.

  • If p = 2, then the resulting 2-norm gives the vector magnitude or Euclidean length of the vector.

  • If p = Inf, then v=maxi(|v(i)|).

  • If p = -Inf, then v=mini(|v(i)|).

Maximum Absolute Column Sum

The maximum absolute column sum of an m-by-n matrix X (with m,n >= 2) is defined by

X1=max1jn(i=1m|aij|).

Maximum Absolute Row Sum

The maximum absolute row sum of an m-by-n matrix X (with m,n >= 2) is defined by

X=max1im(j=1n|aij|).

Frobenius Norm

The Frobenius norm of an m-by-n matrix X (with m,n >= 2) is defined by

XF=i=1mj=1n|aij|2=trace(XX).

This definition also extends naturally to arrays with more than two dimensions. For example, if X is an N-D array of size m-by-n-by-p-by-...-by-q, then the Frobenius norm is

XF=i=1mj=1nk=1p...w=1q|aijk...w|2.

Tips

  • Use vecnorm to treat a matrix or array as a collection of vectors and calculate the norm along a specified dimension. For example, vecnorm can calculate the norm of each column in a matrix.

Extended Capabilities

Version History

Introduced before R2006a

expand all