在matlab上使用norm函数在3D矢量的子向量上

时间:2018-05-09 23:55:28

标签: arrays matlab norm

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

1 个答案:

答案 0 :(得分:2)

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))来模拟行为。