MATLAB实用教程——数值运算:norm和vecnorm两个函数讲解与辨析

该文章已生成可运行项目,

在这里插入图片描述

在 MATLAB 中,normvecnorm 是两个用于计算向量或矩阵范数的函数,虽然它们的功能相似,但在使用场景和适用性上存在一些区别。本文将详细解释这两个函数的用途、功能以及如何选择合适的函数。

norm函数

用法

norm 函数用于计算向量或矩阵的范数。它的基本语法如下:

n = norm(A)

其中,A 可以是一个向量或矩阵,n 是计算得到的范数值。

范数类型

norm 函数支持多种范数类型,常用的包括:

  • 2-范数(默认):向量的欧几里得长度,矩阵的最大奇异值。
  • 1-范数:向量的绝对值之和,矩阵的列和的最大值。
  • ∞-范数:向量的最大绝对值,矩阵的行和的最大值。

例如:

% 计算向量的 2-范数
v = [3, 4];
n2 = norm(v); % 结果为 5

% 计算矩阵的 1-范数
M = [1, 2; 3, 4];
n1 = norm(M, 1); % 结果为 6

vecnorm函数

用法

vecnorm 函数用于计算数组中每一列或每一行的范数。其基本语法如下:

n = vecnorm(A)

A 可以是一个向量、矩阵或更高维数组,n 返回每列的范数。如果需要计算每行的范数,可以指定维度参数。

范数类型

vecnorm 也支持多种范数类型,使用方式与 norm 相似:

n = vecnorm(A, p, dim)

其中,p 是范数类型(例如 1、2、∞),dim 指定计算的维度(1 表示按列计算,2 表示按行计算)。

例如:

% 计算矩阵每列的 2-范数
M = [1, 2; 3, 4];
nCols = vecnorm(M); 

结果为 [ 3.1623 , 4.4721 ] [3.1623, 4.4721] [3.1623,4.4721]

% 计算矩阵每行的 1-范数
nRows = vecnorm(M, 1, 2); 

结果为 [ 3 , 7 ] [3, 7] [3,7]

选择合适的函数

  • 当你需要计算整个向量或矩阵的范数时,使用 norm 函数更为简洁。
  • 当你需要对多维数组的每一列或每一行进行范数计算时,使用 vecnorm 更为高效,因为它能够直接返回每个维度的范数,而不需要手动循环。

示例对比

% 使用 norm 计算单个向量的范数
v = [3, 4];
n1 = norm(v);

结果:
在这里插入图片描述

% 使用 vecnorm 计算同一向量的范数
n2 = vecnorm(v(:)); % 结果也为 5

结果:
在这里插入图片描述

% 使用 norm 计算矩阵的范数
M = [1, 2; 3, 4];
n3 = norm(M); % 结果为 5.4640 (2-范数)

结果:
在这里插入图片描述

% 使用 vecnorm 计算矩阵每列的范数
n4 = vecnorm(M); % 结果为 [3.1623, 4.4721]

结果:
在这里插入图片描述
扩展应用场景:

  • 数据预处理:用 v e c n o r m vecnorm vecnorm对矩阵行进行归一化(如 A _ n o r m a l i z e d = A . / v e c n o r m ( A , 2 , 2 ) ) A\_normalized = A ./ vecnorm(A,2,2)) A_normalized=A./vecnorm(A,2,2)
  • 图像处理:计算图像块的能量分布(按块提取范数)
  • 物理建模:计算多维传感器数据的局部能量或幅值

结论

normvecnorm 都是 M A T L A B MATLAB MATLAB中强大的范数计算工具。根据具体的需求选择合适的函数,可以提高代码的可读性和执行效率。在处理多维数组时,vecnorm 提供了更灵活的选项,而在计算单个向量或整体范数时,norm 则更为简洁。

如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者

本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB卡尔曼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值