Main Content

vecnorm

向量范数

说明

示例

N = vecnorm(A) 返回 A 的 2-范数或欧几里德范数

  • 如果 A 是向量,则 vecnorm 返回该向量的范数。

  • 如果 A 是矩阵,则 vecnorm 返回每一列的范数。

  • 如果 A 是多维数组,则 vecnorm 返回大小不等于 1 的第一个数组维度上的范数。

示例

N = vecnorm(A,p) 计算广义向量 p-范数

示例

N = vecnorm(A,p,dim) 沿维度 dim 运算。此维度的大小将减少至 1,而所有其他维度的大小保持不变。

示例

全部折叠

计算与三维空间中的点 (2,2,2) 对应的向量的 2-范数。2-范数等于向量的欧几里德长度 12

x = [2 2 2];
n = vecnorm(x)
n = 3.4641

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

n = vecnorm(x,1)
n = 6

计算矩阵列的 2-范数。

A = [2 0 1;-1 1 0;-3 3 0]
A = 3×3

     2     0     1
    -1     1     0
    -3     3     0

n = vecnorm(A)
n = 1×3

    3.7417    3.1623    1.0000

也可以使用 norm 函数计算整个矩阵的 2-范数。

输入参数

全部折叠

输入数组,指定为向量、矩阵或多维数组。按照惯例,如果正在运算的向量包含 NaN 值,vecnorm 将返回 NaN 值。

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

范数类型,指定为 2(默认值)、正标量或 Inf

沿其运算的维度,指定为正整数标量。如果不指定值,则默认值是大小不等于 1 的第一个数组维度。

维度 dim 表示长度减至 1 的维度。换言之,size(N,dim)1,而所有其他维度的大小保持不变。

以一个二维输入数组 A 为例:

  • vecnorm(A,p,1) 计算每一列的范数。

    vecnorm(A,p,1) column-wise computation

  • vecnorm(A,p,2) 计算每一行的范数。

    vecnorm(A,p,2) row-wise computation

    dim 大于 ndims(A) 或者 size(A,dim)1 时,vecnorm 返回 abs(A)

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

详细信息

全部折叠

欧几里德范数

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

v=k=1N|vk|2.

常规向量范数

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

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

其中 p 是任何正实数值或 Inf。一些值得关注的 p 值包括:

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

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

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

扩展功能

版本历史记录

在 R2017b 中推出

另请参阅

| |