我有一个名为x的矢量,它是一个3D矢量。 在我的代码中,我需要计算x(1,1,:)的范数(由x(1,1,1),x(1,1,2),...组成的向量)。如果我尝试使用norm(x(1,i,:))命令,Matlab会返回错误“输入必须是2-D”。我该怎么办?
答案 0 :(得分:2)
MATLAB的norm
是一个“特殊”函数,它不像sum
和mean
等许多其他函数那样工作。
但是,vecnorm
的行为与这些功能相似。它计算沿着第一个非单一维度的范数,或者您可以指定计算范数的维度:
vecnorm(x(1,1,:))
vecnorm(x,2,3) % computes 2-norm for all vectors along 3rd dimension.
请注意,此功能是在R2017b中引入的。对于旧版本,您可以使用sqrt(sum(x.^2,3))
来模拟行为。