matlab产生随机整数,和为定值。为什么最后生成的一组数matlab 四舍五入入之后和比定值小了一个?

MATLAB怎么生成一个每一行元素为1-19的随机整数,每一个元素不可重复出现,矩阵为20行20列_百度知道
MATLAB怎么生成一个每一行元素为1-19的随机整数,每一个元素不可重复出现,矩阵为20行20列
不帮忙些代码,只给提示。你的问题也是错的,1到19总共才19个整数,怎么是20行20列的。而且你的问题也没有说清楚,只是每行元素为1-19的随机整数,且不重复,那么列有没有这个要求。每行元素不重复,可以用randperm(n),功能是随机打乱一个数字序列。randperm(5)ans&=&2&4&1&5&3&要每列也不重复,可以把产生的这行每列依次循环左移(右移)一位。
对列没有要求,那么如果要产生一个20行19列的矩阵,每一行元素为1-19的随机数,咋产生啊?用循环吗? randperm(19)产生的只是一行啊?怎么生成20行?求程序?万分感谢
对列没有要求的话,那就更简单了啊。一行已经知道了。把一行的操作重复20次,不就产生20行了嘛。程序这种东西需要自己多写,这样才会有收获。写不对了再问。
其他类似问题
为您推荐:
matlab的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Matlab中的随机函数_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
Matlab中的随机函数
M​A​T​L​A​B​对​随​机​信​号​的​处​理
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢如何用matlab生成一个随机的固定位数的二进制数_百度知道
如何用matlab生成一个随机的固定位数的二进制数
比如我想生成几个8位二进制随机数,就像这样:110011...............
提问者采纳
用这个就行。dec2bin(randi(256)-1,8)要是想一次产生n个,就该为dec2bin(randi(256,n,1)-1,8)
提问者评价
其他类似问题
为您推荐:
您可能关注的推广回答者:
二进制数的相关知识
其他1条回答
给你个链接可以看看,里面有很多方法希望能满意
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁matlab随机产生几个整数,和是一个定值(原创)-matlab之家小站-人人小站
matlab随机产生几个整数,和是一个定值(原创)
例子:25随机分成25个自然数(包括0),编程如下:r=zeros(1,25);r是一个长度为25的向量,初始化可以提高效率,特别是当这个程序要循环的时候。a=rand(1,25);产生25个0-1之间的随机数r=round(25*a/sum(a));产生25个随机数(一般不是整数),其和为25,然后四舍五入取整,产生的新数列之和一般部位25.b=sum(r)-25;这个和与25的差
%%和大于25时,那么随机取几个正数减一。
%%和小于25时,那么随机取几个数加一。
%%最后保证新的数列之和为25if b&0& & c=randi(25,1,-b);& & r(c)=r(c)+1;elseif b==0& & r=r;else&& & k=find(r&0);& & c=randi(length(k),1,b);& & c1=k(c);& & r(c1)=r(c1)-1;&&end&&最后产生 随机数列为,其和为25,随机自由度大于9.r =&& Columns 1 through 5&& & 0.3334 & &0.0057 & &0.3827 & &0.7771 & &0.4878&& Columns 6 through 10&& & 0.4449 & &0.8897 & &0.4858 & &0.0689 & &0.8293&& Columns 11 through 15&& & 0.0634 & &0.8569 & &0.5604 & &0.0987 & &0.5903&& Columns 16 through 20&& & 0.3939 & &0.6441 & &0.3617 & &0.8736 & &0.0421&& Columns 21 through 25&& & 0.2624 & &0.6803 & &0.9096 & &0.1463 & &0.6174用MATLAB生成一个100*100的矩阵,其中随机产生100个-1,其余数全部为零。_百度知道
用MATLAB生成一个100*100的矩阵,其中随机产生100个-1,其余数全部为零。
提问者采纳
a = [-ones(100,1);zeros(9900,1)];a = reshape(a(randperm(10000)),100,100);
来自团队:
其他类似问题
为您推荐:
其他1条回答
A=randint(100);for I=1:100
for J=1:100
if A(I,J)==1
A(I,J)=-1; endendendA
你好,谢谢你的回答。你的程序把所有的1换成了-1,而不是100个
您可能关注的推广
matlab的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 matlab 四舍五入 的文章

 

随机推荐