矩阵行的 MATLAB 范数
本教程将讨论使用 MATLAB 中的 vecnorm() 或 sqrt() 和 sum() 函数查找矩阵每一行的范数。
使用 vecnorm() 函数对矩阵行进行 MATLAB 范数
我们可以使用 Matlab 的 vecnorm()
函数对矩阵的每一行取范数。 该函数可以找到向量、矩阵或多维数组的欧几里德和一般向量范数。
在欧几里德范数的情况下,vecnorm()
函数取所有值的平方,求出它们的和,然后取和的平方根。 在一般向量范数的情况下,vecnorm() 函数使用输入的值作为元素的幂。
该函数的基本语法如下所示。
output = vecnorm(matrix)
output = vecnorm(matrix, p)
第一个语法返回欧几里德范数或矩阵的 2 范数。 第二种语法返回一般向量范数或 p 范数,其中 p 的值可以是 1、2 或 Inf。
如果 p 的值为 1,范数将等于矩阵的绝对值之和。 如果 p 的值为 2,则一般向量范数将等于欧氏范数,如果值为无穷大,则范数将等于每个矩阵列中的最大值。
在向量的情况下,输出将是单个值,这将是向量的范数,而在数组的情况下,函数将沿数组的第一维取范数,其大小不应 等于 1。
假设我们在 vecnorm()
函数中传递一个矩阵,它将返回矩阵中每一列的范数,但我们可以使用 vecnorm()
函数的另一种语法来查找矩阵每一行的范数。
下面给出了用于查找每个矩阵行的范数的 vecnorm()
函数的语法。
output = vecnorm(matrix, normType, dimension);
在此语法中,第二个参数是范数类型,其值可以是正标量。 默认情况下,第二个参数的值设置为 2。
第三个参数是计算范数所依据的矩阵的维数。 在矩阵的情况下,我们可以使用 2 作为行维度,使用 1 作为列维度。
例如,让我们沿着列和行维度找到矩阵的范数。 请参阅下面的代码和输出。
clc
clear
m = magic(3)
n1 = vecnorm(m)
n2 = vecnorm(m,2,2)
输出:
m =
8 1 6
3 5 7
4 9 2
n1 =
9.4340 10.3441 9.4340
n2 =
10.0499
9.1104
10.0499
在上面的代码中,我们使用 magic()
函数创建了一个 3×3 矩阵来查找行和列的范数。 在上面的输出中,我们可以看到 vecnorm(m)
函数返回了每一列的范数,而 vecnorm(m,2,2)
返回了矩阵每一行的范数。
使用 sqrt() 和 sum() 函数的矩阵行的 MATLAB 范数
我们还可以使用 sqrt()
和 sum()
函数找到矩阵行的范数。 我们知道用于查找矩阵行范数的算法,其中我们首先需要取值的平方,然后使用 sum()
函数求出它们的和,之后,我们可以使用 平方根()函数。
例如,让我们沿着行维度找到矩阵的范数。 请参阅下面的代码和输出。
clc
clear
m = magic(3)
n1 = sqrt(sum(m.^2,2))
输出:
m =
8 1 6
3 5 7
4 9 2
n1 =
10.0499
9.1104
10.0499
在上面的代码中,我们使用 m.^2
参数来计算矩阵所有值的平方,并且我们在 sum()
函数中使用 2 作为第二个参数来计算行元素的总和,但是如果 我们想找到列的范数,我们可以使用 1 作为第二个参数。 上面的输出显示范数与第一个示例中的相同。
相关文章
MATLAB 检查变量类型
发布时间:2023/04/23 浏览次数:92 分类:MATLAB
-
在本教程中,我们将讨论如何使用 MATLAB 中的 class() 和 whos 函数检查给定变量的类型。