任何方式来做到这一点?假设我有A=[0.1 0.2 0.3 0.4]
,那么在标准化后,A_norm=[1 2 3 4]
基于每个值的“重要性”,这意味着0.4将是最大的(4个分配的)并且0.1将是最少的(1个分配的)。在matlab中将小数值标准化为整数(唯一)
您可能会建议只使用A_norm=A*10
,但请注意,该数字可以是任意数字,最多可包含10位以上的有效数字。也不要使用像floor
ceil
和round
这样的命令四舍五入到最接近的整数。
谢谢!
任何方式来做到这一点?假设我有A=[0.1 0.2 0.3 0.4]
,那么在标准化后,A_norm=[1 2 3 4]
基于每个值的“重要性”,这意味着0.4将是最大的(4个分配的)并且0.1将是最少的(1个分配的)。在matlab中将小数值标准化为整数(唯一)
您可能会建议只使用A_norm=A*10
,但请注意,该数字可以是任意数字,最多可包含10位以上的有效数字。也不要使用像floor
ceil
和round
这样的命令四舍五入到最接近的整数。
谢谢!
您可以只使用unique
的third output,这是排序的A
的索引。请注意,如果你使用'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
使用与问题中相同的名称并解释您的解决方案的工作方式可能很有用。 – m7913d
为什么你用'.''代替'''? – m7913d
感谢评论@ m7913d,我相应地编辑了我的答案。 '。'是转置运算符(不同于'',它是复共轭转置运算符)。我很少使用它,我知道它只是索引(它必须是实数),但其他人在这里评论了它,所以我通过了'。''。 – user2999345
这样就可以使你想在'A'重复值的情况下? – m7913d
如果存在A的重复值,则'重要性值'应该相同 –