MATLAB norm() 函数

Ammar Ali 2022年7月12日
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-范数。如果 pInf,语法将返回给定矩阵的最大绝对行数。

最后一种语法将返回给定矩阵的 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() 函数的更多详细信息。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - MATLAB Vector

相关文章 - MATLAB Matrix