Mathematica 如何生成每行之和为一定值的随机矩阵?如何生成每行之和为一定值的随机矩阵?例如:生成一个4行3列的随机矩阵,s1表示每行之和s1={10,11,12,13} 输出:s2= {{3,2,5},{1,2,8},{3,7,2},{1,3,9}}

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 15:48:58

Mathematica 如何生成每行之和为一定值的随机矩阵?如何生成每行之和为一定值的随机矩阵?例如:生成一个4行3列的随机矩阵,s1表示每行之和s1={10,11,12,13} 输出:s2= {{3,2,5},{1,2,8},{3,7,2},{1,3,9}}
Mathematica 如何生成每行之和为一定值的随机矩阵?
如何生成每行之和为一定值的随机矩阵?
例如:生成一个4行3列的随机矩阵,s1表示每行之和
s1={10,11,12,13}
输出:
s2= {{3,2,5},{1,2,8},{3,7,2},{1,3,9}}

Mathematica 如何生成每行之和为一定值的随机矩阵?如何生成每行之和为一定值的随机矩阵?例如:生成一个4行3列的随机矩阵,s1表示每行之和s1={10,11,12,13} 输出:s2= {{3,2,5},{1,2,8},{3,7,2},{1,3,9}}
暂时想到了这一种方法,
自定义函数
       randmatrix[list_,n_] := RandomChoice@IntegerPartitions[#,{n}] & /@ list;
其中参数 list 即为你的例子中的 s1,n 为矩阵列数
测试一下,效果还可以
       s1 = {10,11,12,13};randmatrix[s1,3]
输出 {{4,3,3},{7,2,2},{8,2,2},{6,6,1}}
注意:因为这是随机选取的,你的运行结果可能不一样.
提一点建议,以后再问关于Mathematica的问题时请将问题归类到编程语言下面,