python - 如何生成具有随机条目且对行和列有约束的矩阵?

标签 python matlab matrix julia

如何生成一个矩阵,其条目是介于 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/

相关文章:

matlab - 从matlab中的特定文件夹访问图像

python - 如何将列添加到 ndarray?

c# - 在 C# 中从文件读取二维矩阵到二维 int 数组

python - Pandas 按日期分组并重新采样

python - 以更pythonic的方式找到最近的邻居

python - 带有预装依赖项的 pip 包安装

python - 根据python中的自定义函数聚合数据框中的每一列

python - 将执行日志合并到报告中

image - bwareafilt 在 MATLAB 中的奇怪行为及其使用的算法是什么?

java - 如何从 Jama Matrix 对象转换为 double[][] - Java