我有一个矩阵,我想确保每行加起来100,但也要确保任何行条目的最小值是10之类的任意数字。下面是一个示例矩阵:
> from collections import defaultdict
> d = defaultdict(lambda: len(d)) # use 'len(d) + 1' if you want 1-based counting
> a = [[d[s] for s in x] for x in a]
> a
[[0, 1], [0, 2], [3, 4], [2, 0]]
# [[1, 2], [1, 3], [4, 5], [3, 1]]
理想的结果:
matrixval=matrix(c(96,1,3,47,47,6,20,5,75),nrow=3,ncol=3,byrow=T)
因此所有行的总值为100,最小值为10,从其他行中取出的量与其值成比例(参见下面的示例计算)。
最后一排是20,5,75,所以我们需要从20和75取5,所以我们从75和5 /(20 + 75)*取5 /(20 + 75)* 75 = 3.947 20 =距离20 = 1.053以获得最终结果。