Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

norm

向量范数和矩阵范数

说明

示例

n = norm(v) 返回向量 v欧几里德范数。此范数也称为 2-范数、向量模或欧几里德长度。

示例

n = norm(v,p) 返回广义向量 p 范数

示例

n = norm(X) 返回矩阵 X 的 2-范数或最大奇异值,该值近似于 max(svd(X))

n = norm(X,p) 返回矩阵 X 的 p-范数,其中 p12Inf

示例

n = norm(X,"fro") 返回矩阵或数组 XFrobenius 范数

示例

全部折叠

创建一个向量并计算模。

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

计算向量的 1-范数,该范数为元素模的总和。

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

计算两个点之间的距离作为向量元素之差的范数。

创建两个向量,表示欧几里德平面上两个点的 (x,y) 坐标。

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

使用 norm 来计算点之间的距离。

d = norm(b-a)
d = 2.8284

在几何学上,点之间的距离等于从一个点延伸到另一个点的向量的模。

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

计算矩阵的 2-范数,该范数为最大奇异值。

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

计算一个 4 维数组 X 的 Frobenius 范数,它等效于列向量 X(:) 的 2-范数。

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

Frobenius 范数对于稀疏矩阵也很有用,因为 norm(X,2) 不支持稀疏 X

输入参数

全部折叠

输入向量。

数据类型: single | double
复数支持:

输入数组,指定为矩阵或数组。对于大多数范数类型,X 必须为矩阵。但是,对于 Frobenius 范数计算,X 可以是数组。

数据类型: single | double
复数支持:

范数类型,指定为 2(默认值)、正实数标量、Inf-Infp 的有效值及其返回的内容取决于 norm 的第一个输入为矩阵还是向量,如表中所示。

注意

此表并未反映计算所用的实际算法。

p矩阵向量
1max(sum(abs(X)))sum(abs(v))
2 max(svd(X))sum(abs(v).^2)^(1/2)
正实数值标量sum(abs(v).^p)^(1/p)
Infmax(sum(abs(X')))max(abs(v))
-Infmin(abs(v))

输出参数

全部折叠

范数值,以标量形式返回。范数为元素模的测度。按照惯例:

  • 如果输入包含 NaN 值,norm 将返回 NaN

  • 空矩阵的范数为零。

详细信息

全部折叠

欧几里德范数

具有 N 个元素的向量 v 的欧几里德范数(也称为向量模、欧几里德长度或 2-范数)的定义如下:

v=k=1N|vk|2.

常规向量范数

具有 N 个元素的向量 v 的 p-范数的常规定义是

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

,其中 p 是任何正的实数值、Inf-Inf

  • 如果 p = 1,则所得的 1-范数是向量元素的绝对值之和。

  • 如果 p = 2,则所得的 2-范数是向量的模或欧几里德长度。

  • 如果 p = Inf,则 v=maxi(|v(i)|)

  • 如果 p = -Inf,则 v=mini(|v(i)|)

最大绝对列之和

m×n 矩阵 X (m,n >= 2) 的最大绝对列之和由

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

定义

最大绝对行之和

m×n 矩阵 X (m,n >= 2) 的最大绝对行之和由

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

定义

Frobenius 范数

m×n 矩阵 X (m,n >= 2) 的 Frobenius 范数由

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

定义

此定义自然也适合扩展到二维以上的数组。例如,如果 X 是 N 维数组,大小为 m×n×p×...×q,则 Frobenius 范数为

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

提示

  • 使用 vecnorm 将矩阵或数组视为向量的集合并计算指定维度上的范数。例如,vecnorm 可以计算矩阵中每列的范数。

扩展功能

版本历史记录

在 R2006a 之前推出

全部展开

另请参阅

| | | | |