我有一个矩阵200 * 10,其值介于100和150之间,我想要的值介于[0 1]之间。
我知道一种做法是将其除以最大值,但我想知道任何其他方式,即建立在matlab函数或任何其他数学公式中,将所有值转换为小于1。请不要像我试过的那样提及sigmoid功能。
由于
答案 0 :(得分:0)
除以数字比计算更昂贵。尝试像
这样的东西m = max(A(:))
B = A(A<m)
这称为“逻辑索引”。结果将是A
中小于最大m
的值向量。 m不一定是最大值...你可以同样替换m
的任何值,逻辑索引也可以。
例如,在上面的代码中,如果
A =
[0 3 4
2 0 4
5 5 2
4 5 3
5 4 1 ]
B.' = [ 0 2 4 3 0 4 4 4 2 3 1 ]
如果这是您的想法,请告诉我。这个问题有点不清楚。
答案 1 :(得分:0)
要标准化矩阵X
,使值位于[0, 1]
范围内,您可以使用:
Xnorm = (X - min(X(:)))/(max(X(:)) - min(X(:)))