MATLAB如何把n个数不重复地随机分为m组

RT 例如a =[1:100] 想把a近似随机地分为10组,但是不能重复取数,应该怎么操作? 谢谢

用crossvalind函数。具体用法看帮助文档。
Indices =crossvalind('Kfold', length(a), 10);追问

不是啊,您这个的运行结果是这样的,不是1:100的随机分组

追答

您觉得这些个结果是什么呢 不就是分组的编号么。 第13个数分到第3组,以此类推。。

追问

原来是这个意思,谢谢

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-02
>> A = randperm(100);
R = reshape(A,10,10)
R =
23 84 87 66 77 69 63 70 62 19 91 14 86 21 32 53 65 89 44 92 30 49 28 74 6 76 95 13 40 61 7 50 96 56 34 73 39 31 72 17 41 26 67 43 97 100 42 5 36 12 20 29 94 15 3 59 51 11 58 33 98 93 52 18 60 27 78 80 57 16 90 38 48 35 45 2 55 22 88 81 24 25 71 47 82 10 75 64 83 85 54 1 68 9 37 79 46 8 4 99本回答被网友采纳

matlab 随机分组,谢谢
用一条线将 C1 到 C10 串起来,两头再链接成环形,随意割 4 刀就分成 4 组了。clear all;n = 10; m = 4; % n 个元素分成 m 组(n>=m)a = randperm(n);r = sort(a(1:m));r = [r r(1)+n];R{1,m} = [];for k = 1:size(r,2)-1 for p = r(k):r(k+...

matlab中如何产生N个随机数,和为定值M
1、首先在电脑中,找到并打开MATLAB软件,二项分布随机数的产生。2、接着输入二项分布随机数X~b(n,p),n为发生次数,p为发生概率,如下图所示。3、然后输入泊松分布,参数为p,如下图所示。4、接着输入指数分布,参数为λ,如下图所示。5、最后正态分布,X~N(μ,δ^2),如下图所示,...

matlab应该用哪个函数生成一个N个数的随机数列,且要求数列的平均值是...
用 y=random('norm',M,s,m,n) 产生一个m行n列、均值为M、标准差为s的随机矩阵,例:>> y=random('norm',2,0.3,3,4)y = 2.1613 2.2587 1.8699 2.8308 2.5502 2.0956 2.1028 1.5950 1.3223 1.6077 3.0735 2.9105 ...

请问MATLAB中如何利用randperm产生M行的矩阵?
用一个for循环。n=10;m=8;for k=1:m juzhen(k,:)=randperm(n);end juzhen --- juzhen = 4 9 7 1 8 10 3 6 5 2 10 5 7 3 2 1 4 8 9 6 6 9 5 4 10 8 1 3 2 7 2 3 4...

matlab在一定范围内生成随机数,代码是怎么回事?
rand([m n])产生 m行,n列(0,1)范围内均匀分布的伪随机数如果要求在区间(a,b)内产生均匀分布的随机数 r = a + (b-a).*rand([m n]));MATLAB 生成随机整数的方法:1,生成0-5之间的10个随机整数 在matlab主窗口中输入round(rand(1,10)*5) 回车 2,生成1个随机整数,,命令 ...

Matlab程序设计 任意输入n个不重复的整数序列,输出序列的全排列_百度...
s = input('任意输入n个不重复的整数序列(如:12,13,15,1)\\n','s');A = str2num(s);m = length(A);id = perms(1:m);R = A(id)任意输入n个不重复的整数序列(如:12,13,15,1)5,12,1 R = 1 12 5 1 5 12 12 1 5 12 5 1 5 12 1 5...

如何用matlab产生一组不同的随机整数?函数越简单越好!
用randint(m,n,[M N])---其表示生成一个m*n的矩阵,值在M与N之间. 要生成10个数,用1*10矩阵就行了, 例randint(1,10,[21 28])即可实现你提的例子.或者 round(7*rand(1,10))+21 可以一下子生成10个21到28的数。

matlab随机排列组合
A=[1 2 3];B=[4 5 6];C=[7 8 9];a1=nchoosek(1:3,2);[m n]=size(a1);r=[];for i=1:m for j=1:m for k=1:m r=[r;A(a1(i,:)) B(a1(j,:)) C(a1(k,:))];end end end

新手:把一个序列等分为M份,matlab
A = rand(100, 1);B = reshape(A, [], 4);这样得到的B是个n行4列的矩阵,B(:,k)这样就可以取到第k列。

跪求:matlab如何将1行N列元素变为M行8列(最后一行可不足8列)?
是矩阵就必须是每行元素都相等,要不就不是四四方方的,就不叫矩阵了。这里不一个NaN,就是不是数的意思,matlab里边的一个“数”。a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17];b=NaN([1,8-rem(length(a),8)]);a=[a,b];reshape(a,8,[])'最后得到的结果如下:...

相似回答