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

 我来答
第远易韶丽
2020-04-30 · TA获得超过4108个赞
知道大有可为答主
回答量:3251
采纳率:26%
帮助的人:496万
展开全部
%
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-b<=min_n
min_n=2;%最小值
max_n=100;%最大值
m=5;%行数,注:行数不宜大,否则0元素过多
n=30;%列数
num=zeros(m,n);%初始化
for
i=1:n
for
j=1:m
if
round(max_n-sum(num(1:j,i)))>min_n%随机数产生的终止条件
num(j,i)=floor(min_n+(max_n-sum(num(1:j,i)))*rand);%产生随机数
end
end
end
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式