作业帮 > 综合 > 作业

matlab中怎么随机生成一个M*N矩阵,使每列和为一固定值,每个元素为整数?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 19:50:27
matlab中怎么随机生成一个M*N矩阵,使每列和为一固定值,每个元素为整数?
% function num=randn(min_n,max_n,m,n)
%思路:
%对于某一列,先产生该列第一个随机数a,其范围为[min_n,max_n]
%然后产生该列第二个随机数b,其范围为[min_n,max_n-a]
%之后产生该列第三个随机数c,其范围为[min_n,max_n-a-b]
%终止条件为max_n-a-bmin_n%随机数产生的终止条件
num(j,i)=floor(min_n+(max_n-sum(num(1:j,i)))*rand);%产生随机数
end
end
end
再问: 有点问题,就是每列最后一个应为总数减前面总数的差,加一句 num(m,i)=max-sum(num(1:m-1,i));%每列最后元素为剩下的个数 就行了,还是谢谢提供思路。
再答: 嗯 不好意思我遗漏了 难怪会那么多0 嘿嘿