matlab - 如何使用 matlab 对具有负值的向量进行归一化?

标签 matlab

对于给定的向量,比如 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)。这是正确的吗?

最佳答案

我会考虑减去最低值:

V = v - min(v)
W = V/norm(V,1)

现在 sum(W) 等于 1 并且您不会像使用 abs 那样丢弃信息

关于matlab - 如何使用 matlab 对具有负值的向量进行归一化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20950723/

相关文章:

matlab - 对重叠三角形曲线下的累积面积求和

matlab - 在 MATLAB 中获取当前图形大小

python - numpy.tile 不能作为 Matlab repmat

python - 是否可以在 python 中将 xticks 的文本包装在 matplotlib 中?

c - 如何同时调试C和Matlab代码?

c++ - 通过 mex 使用 matlab 运行 opencv 代码失败,而在 VisualStudio 上它可以工作

arrays - 使用向量索引具有可变维数的元胞数组

matlab - bsxfun:连接矩阵的维数不一致

c++ - 如何在 C++ 中获得 vector 复数值的最大值、最小值和位置?

matlab - Uitable、cellSelectionCallback 和修改数据集