# norm¶

## Purpose¶

Computes one of several specified matrix norms, or a vector p-norm.

## Format¶

n = norm(A[, norm_type])
Parameters:
• A (Nx1 vector or NxN matrix) – data
• norm_type (string or scalar) –

optional. specifying which norm to compute.

Matrix norm options
1 Scalar, equivalent to: maxc(sumc(abs(x)))
2 Scalar, the spectral norm, equivalent to: maxc(svds(x))
___INFP Scalar, the infinity norm, equivalent to: maxc(sumr(abs(x)))
”fro” String, the Frobenius norm, equivalent to: sqrt(sumc(vecr(x.^2))).
”nuc” String, the nuclear norm, equivalent to: sumc(svds(A)).
Vector norm options
1 Scalar, equivalent to: sumcs(abs(x)) for column vectors, or sumr(abs(x)) for row vectors.
2 Scalar, the l2 or Euclidean norm, equivalent to: sqrt(sumc(x.^2)), or sqrt(sumr(x.^2))
p Scalar, any real number, equivalent to: sumc(abs(x.^p)).^(1/p), or sumr(abs(x.^p)).^(1/p)
___INFP Scalar, equivalent to: maxc(abs(x)), or maxc(abs(x'))
__INFN Scalar, equivalent to: minc(abs(x)), or minc(abs(x'))
Returns:

n (Scalar) – the requested norm of A.

## Examples¶

### Matrix norms¶

// Create 4x3 matrix
A = { 0.35148166       0.53337376      -0.91676553,
0.89133334      0.099774011        1.1669254,
-0.54380494      -0.52901019       0.38900312,
-0.67434004       -1.1692513      -0.14388126 };

// Matrix 1 norm
n_1 = norm(A, 1);

// Matrix spectral norm
n_2 = norm(A, 2);

// Matrix Infinity norm
n_inf = norm(A, __INFP);

// Matrix Frobenius norm
n_fro = norm(A, "fro");

// Matrix nuclear norm
n_nuc = norm(A, "nuc");

// Singular values of 'A'
s = svds(A);


The above code will make the following assignments:

n_1   = 2.6166     n_2   = 1.7835    n_inf = 2.1580
n_fro = 2.4462     n_nuc = 3.8478

s =   1.7835
1.6121
0.4522


### Vector norms¶

// Column vector
v = { 0.0502,
-0.7841,
0.5719,
-0.8668 };

// Vector 1 norm
n_1 = norm(v, 1);

// Vector Euclidean norm
n_2 = norm(v, 2);

// Vector p norm
n_p = norm(v, 3);

n_pos_inf = norm(v, __INFP);
n_neg_inf = norm(v, __INFN);


The above code will make the following assignments:

n_1       = 2.2730    n_2       = 1.3022    n_p = 1.0971
n_pos_inf = 0.8668    n_neg_inf = 0.0502

// Row vector
vt = { -0.5396  -0.0972  -0.0176   1.0552 };

// Vector 1 norm
n_1 = norm(vt, 1);

// Vector Euclidean norm
n_2 = norm(vt, 2);

// Vector p norm
n_p = norm(vt, 3);

n_pos_inf = norm(vt, __INFP);
n_neg_inf = norm(vt, __INFN);


The above code will make the following assignments:

n_1       = 1.7096    n_2       = 1.1893    n_p = 1.0005
n_pos_inf = 1.0552    n_neg_inf = 0.0176


## Remarks¶

• To compute the Euclidean norm of each column vector of a matrix, call:

n = sqrt(dot(A, A));