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

Using norm function in matlab on a subvector of a 3D vector

我有一个名为 x 的向量,它是一个 3D 向量。 在我的代码中,我需要计算 x(1,1,:) 的范数(由 x(1,1,1), x(1,1,2),... 组成的向量)。如果我尝试使用 norm(x(1,i,:)) 命令,Matlab returns 给我错误 "Input must be 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)).

模拟行为