MATLAB norm() 函数
在本教程中,我们将讨论使用 MATLAB 中的 norm()
函数查找向量或矩阵的欧几里得范数和 Frobenius 范数。
MATLAB norm()
函数
MATLAB 的 norm()
函数用于求向量或矩阵的欧几里德范数和 Frobenius 范数。欧几里得范数是向量到其原点的欧几里得距离,它等于向量的大小、2 范数或欧几里得长度。
欧几里得距离等于欧几里得空间中两点之间线段的长度。我们还可以通过求向量与其自身的内积然后取其平方根来求欧几里得范数。
Frobenius 范数是矩阵的欧几里得范数。如果我们在 norm()
函数中传递一个向量,它将返回该向量的欧几里得范数,但在矩阵的情况下,norm()
函数将返回 Frobenius 范数。
norm()
函数有五种不同的语法,如下所示。
nm = norm(vec)
nm = norm(vec,p)
nm = norm(mat)
nm = norm(mat,p)
nm = norm(mat,"fro")
第一种语法将返回给定向量的 2 范数或欧几里得范数。第二种语法将返回给定向量的 p
-范数,其中 p
-范数可以是 1-范数、2-范数、3-范数等。
第三种语法将返回矩阵的最大奇异值或欧几里得范数。第四种语法将返回给定矩阵的 p
范数,p
可以是 1、2 或 Inf
。
如果 p
为 1,语法将返回给定矩阵的列的最大绝对和,如果 p
为 2,将返回 2-范数。如果 p
是 Inf
,语法将返回给定矩阵的最大绝对行数。
最后一种语法将返回给定矩阵的 Frobenius 范数。例如,让我们使用 norm()
函数找到向量和矩阵的欧几里得范数。
请参阅下面的代码。
clc
clear
v1 = 1:5;
m = [1:10;21:30];
n1 = norm(v1)
n3 = norm(m)
输出:
n1 =
7.4162
n3 =
83.2005
在上面的输出中,返回了整个矩阵的范数,即 83
。如果我们想找到矩阵中每一行或每一列的范数,我们可以使用 vecnorm()
函数,它将给定矩阵的每一行或每一列视为一个单独的向量并计算其范数。
例如,如果我们在 vecnorm()
函数中传递一个矩阵,它将返回一个向量,其中包含给定矩阵中存在的每一列的 2-范数。我们还可以将规范数设置为第二个参数,并将我们想要将规范作为第三个参数的维度设置为 vecnorm()
函数中的第三个参数。
查看此链接以获取有关 norm()
函数的更多详细信息。此外,查看此链接以了解有关 vecnorm()
函数的更多详细信息。