如何生成一个矩阵,其条目是介于 0 和 1 之间的随机实数,并具有附加约束:每行的总和必须小于或等于 1,每列的总和必须小于或等于一个。
例子:
matrix = [0.3, 0.4, 0.2;
0.7, 0.0, 0.3;
0.0, 0.5, 0.1]
最佳答案
如果您想要一个均匀分布并满足这些约束的矩阵,您可能需要一个拒绝方法。在 Matlab 中它将是:
n = 3;
done = false;
while ~done
matrix = rand(n);
done = all(sum(matrix,1)<=1) & all(sum(matrix,2)<=1);
end
请注意,对于较大的 n
,这会很慢。
关于python - 如何生成具有随机条目且对行和列有约束的矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33003153/