MATLAB中向量的绝对值

时间:2014-01-03 13:26:12

标签: matlab vector absolute modulus

如果我有一个矢量: A=[1,1,1] 我知道它有长度,SQRT((1 ^ 2)+(1 ^ 2)+(1 ^ 2))= SQRT(3)=约1.73

但是我如何在MATLAB中做到这一点?

我试过了:

abs(A) 

但这只返回数组中每个元素的绝对值。所以它只返回相同的数组,如下所示:

B=abs(A) 

B=[1,1,1] 

如何让MATLAB给出整个向量的绝对值,所以得到一个标量输出?

我宁愿用单个函数来做,而不是单独操作向量中的每个元素,因为我的代码变得非常混乱。

谢谢!

2 个答案:

答案 0 :(得分:6)

最简单的方法是使用norm

norm(A)

您也可以手动执行:将每个向量元素提升为2的幂,将所有结果求和以获得单个数字,并计算其平方根:

sqrt(sum(A.^2))

答案 1 :(得分:5)

使用norm功能

B = norm(A,2);

第二个参数表示您要使用欧几里德范数