matlab怎么让一个向量随机生成十个数
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/26 09:57:22
and(m,n)产生mxn,0~1均匀分布的随机矩阵
楼上的做法不妥.因为b=ceil(rand(1,n)*10);所产生的数组不能保证不重复(另外,里面的10应为m).实际上这是一个随机抽样问题,我刚好前段时间编过一个,代码附后,供参考.算法参见Knu
permsclearall;clc;A=[1234];perms(A)
B=reshape(A.',1,8);你可以看一下reshape函数,就是干这个的.另外reshape读取元素是按列优先的,所以A要做个转置.
a(uint16(rand*(length(a)-1)+1))其中:rand生成一个[0,1]之间的随机实数.length(a)-1是a的元素个数减去1.rand*(length(a)-1)+1把这个
ank函数
=randint(1,10,[65116]);%随机产生1×10的65-116范围的正整数(ASCII码)b(b>90)=b(b>90)+6;%65-90是小写字母,>90则+6,97-122是大写字
是在知道均值和方差的情况下吗?r1=rand(1,n);r2=rand(1,n);w=fangCha*sqrt(-2*log(r2)).*cos(2*pi.*r1)+junZhi;
你看看这个咋样,矩阵大小可以自己调,inf出现的比例可以调里面的rndN=10;%矩阵大小N*Nselect=[5:10,inf];a=zeros(N,N);fori=1:Nforj=1:i;ifj=
最简单的均匀分布round(rand()*3)+1communicationstoolbox里的函数也可以randint(1,1,[14])补充一下:楼上那个0-1000实际上是1001个数据,产生的
好像没有直接能变成想要的函数,不过有个变维函数,reshape函数.另外记住矩阵元素的排列是从上到下,从左倒右的,按照这个规则以及变维函数可以实现想要的功能:>>a=1:6a=123456>>b=re
andperm(100)'生成100以内的随机数(100个)randn(100,1)生成服从(0,1)正态分布的随机数(100个)MATLAB还有很多随机数发生器,楼主可以根据需要选取.
a=100*rand(123,1);b=round(a);这样可以产生0-100,的平均分布的整数,仿照例子产生你需要的数
andi(2,1,N)-1;N是你需要的向量长度
a=rand(m,n),a.*repmat(rand(1,n),m,1)
randsrc(1,1,randperm(N))%RANDPERM(n)isarandompermutationoftheintegersfrom1ton. Fore
A=diag(b,n)b为列向量.n为零时或不指定是为主对角线.你的问题A=diag(b)就行
a1=rand(1,6)a=a1/sums(a1)a就是你想要的
是向量长度a=ceil(b*rand(1,1));C(a)即为随机抽取的元素
不知道你要产生什么样的向量,建议是用randsample例如:a=randsample(20,5);%表示在1到20之间随机取5个数的向量详细用法见matlab的help中的demos里面的用法