在 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 ceilround.

这样的命令四舍五入到最接近的整数

谢谢!

您可以只使用 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