在 3D 向量的子向量上使用 matlab 中的范数函数



我有一个名为x的向量,它是一个3D向量。 在我的代码中,我需要计算 x(1,1,:)(由 x(1,1,1(、x(1,1,2(,... 组成的向量(的范数。如果我尝试使用 norm(x(1,i,:)( 命令,Matlab 会返回错误"输入必须是 2-D"。我能做什么?

MATLAB 的norm是一个"特殊"函数,它不像许多其他函数(如summean(那样工作。

但是,vecnorm的行为确实类似于这些函数。它沿第一个非单一实例维度计算范数,或者您可以指定沿哪个维度计算范数:

vecnorm(x(1,1,:))
vecnorm(x,2,3) % computes 2-norm for all vectors along 3rd dimension.

请注意,此函数是在 R2017b 中引入的。对于旧版本,您可以使用sqrt(sum(x.^2,3))来模拟该行为。

最新更新