matlab某数组中产生不重复随机数,数组的随机排序,randperm函数numel,X=X(A)函数
2019-10-16 23:34
2251 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mahara/article/details/102597021
例如:A=[1,4,5,8,14,15],从数组A中产生3个不重复的随机数。(当然也可以从A=1:n个数中产生几个不重复随机数)或者(将数组随机排序)。此过程需要利用randperm函数。
1.randperm函数
y = randperm(n),y是把1到n这些数随机打乱得到的一个数字序列。也可以认为是生成了1到n的不重复的随机排序的n个数。
>> y = randperm(5) y = 2 3 4 1 5
y = randperm(n,m),生成1到n之间的,不重复的,随机的,m个数。可以理解为,先生成了,y = randperm(n),然后取了前m个数,所以m不能大于n。
>> y = randperm(4,3) y = 4 1 3
>> y = randperm(3,4) 错误使用 randperm K 必须小于或等于 N。
2.numel(x)
numel(x)获得变量长度
y = 4 1 3 >> numel(y) ans = 3
3.X=X(A) 获取新排列的数列
A为新的数组的排列顺序的数组。例如,A=[2 1 3],也就是将,原数组中,第2个数放在第一位,第1个数放第二位,第三个数放第三位。
y = 4 1 3 >> y=y([2 1 3]) y = 1 4 3
4.数组的随机排序
利用randperm(n),生成了1到n个,随机排序的,不重复的,n个数,相当于生成了新数组的顺序,配合X=X(A),即可进行排序。
>> A=randperm(3) A = 1 3 2 >> y y = 1 4 3 >> y=y(A) y = 1 3 4
5.数组中产生不重复随机数
与上一个数组的随机排序相类似,用randperm(n),生成了1到n个,随机排序的,不重复的,n个数,相当于生成了新数组的顺序。但是,这次是要生成其中部分的随机数,所以,要用randperm(n,m)。然后就能在n个原来的数中,产生随机的不重复的m个数。
可以用numel(y)获取原来的数组中n的数值。
y = 4 5 8 3 7 8 14 69 3 >> n=numel(y) n = 9 >> X=randperm(9,4) X = 9 8 2 3 >> y=y(X) y = 3 69 5 8
相关文章推荐
- iOS开发之把数组中的元素进行随机排序、随机数产生的几种方法
- js产生两组随机数,第一组产生不重复随机数组,第二组产生不包括第一组数据的不重复随机数...
- 编程产生一个int数组,长度为30,并向其中随机插入1-30,并且不能重复输出数组。实现一个冒泡排序算法对其进行排序,输出排序结果
- 产生一个int数组,随机向数组中插入1-100的随机数且不能重复
- 几个关于随机数组产生的函数 包括各类可重复或不重复
- 产生一个int数组,随机向数组中插入1-100的随机数且不能重复
- 产生一个int数组,随机向数组中插入1-100的随机数且不能重复
- C# 获取随机数 或者随机数组 。net获取不重复的随机数或者随机数组
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
- c#随机产生不重复数组
- java笔试题---程序产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
- 冒泡排序:在随机产生的数组中查找最值,实现数组的排序
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。按照数组下标输出结果。
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
- 写一个函数,参数为$n,生成一个数组,其元素为1~$n,各元素位置随机排列,不得重复
- 随机产生20个字符串并且字符串不能重复 且进行排序
- 写一个函数实现数组中的元素随机乱序排序
- 产生1-10的10个随机不重复的数,并按从小到大排序
- Java数组排序基础算法,二维数组,排序时间计算,随机数产生
- Java中从一个数组中随机产生不重复的数