给定一个向量,比如说
v=[1 2 2]
,需要对其进行规范化,使得结果矩阵中所有值的和为1。我使用Matlab代码 w=v/norm(v,1)
来实现这一需求。现在结果为 w=[0.2000 0.4000 0.4000]
,即 sum=0.2+0.4+0.4=1
,满足条件。但当输入负值时,结果就会出错。例如,如果 v=[1 -2 2]
并且执行 w=v/norm(v,1)
。那么结果就是 w=[0.2000 -0.4000 0.4000]
,而sum = 0.2+(-0.4)+0.4 != 1
。这个和不等于1。于是我尝试了 w=abs(v)/norm(v,1)
这段代码。请问这样做正确吗?