在 matlab 中将小数值标准化为整数(唯一)
Normalize decimals values to integer number (uniquely) in matlab
有什么办法吗?假设我有 A=[0.1 0.2 0.3 0.4]
,然后在归一化后,A_norm=[1 2 3 4]
,基于每个值的 'importance',这意味着 0.4 将是最大的(分配 4 个)而 0.1 将是最小的(已分配 1 个)。
您可能会建议只 A_norm=A*10
,但请注意,该数字可以是任何有效数字最多超过 10 位的数字。也不要使用像 floor
ceil
和 round
.
这样的命令四舍五入到最接近的整数
谢谢!
您可以只使用 third output of unique
, which is the indexes of sorted A
. note that if you'll use the 'stable'
选项,它将成为 未排序的 A
的索引,所以不要:
A=[0.1 0.2 0.3 0.4 0.005 0.4];
[~,~,A_norm] = unique(A);
A_norm = A_norm.'
A_norm =
2 3 4 5 1 5
有什么办法吗?假设我有 A=[0.1 0.2 0.3 0.4]
,然后在归一化后,A_norm=[1 2 3 4]
,基于每个值的 'importance',这意味着 0.4 将是最大的(分配 4 个)而 0.1 将是最小的(已分配 1 个)。
您可能会建议只 A_norm=A*10
,但请注意,该数字可以是任何有效数字最多超过 10 位的数字。也不要使用像 floor
ceil
和 round
.
谢谢!
您可以只使用 third output of unique
, which is the indexes of sorted A
. note that if you'll use the 'stable'
选项,它将成为 未排序的 A
的索引,所以不要:
A=[0.1 0.2 0.3 0.4 0.005 0.4];
[~,~,A_norm] = unique(A);
A_norm = A_norm.'
A_norm =
2 3 4 5 1 5