MATLAB中,怎样把一组给定的数据随机排列?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB中,怎样把一组给定的数据随机排列?相关的知识,希望对你有一定的参考价值。
比如说X=[-2.8 -2.6 -2.2 -1.9 -1.5 -1.0 -0.5 0.2 0.6 1.2 1.5],现在我想让它们随机排列,怎么办呢?谢谢各位!
可以参考下面的代码:
X=X(randperm(numel(x)))
numel(x)获得变量长度
randperm(n)产生长度为n的随机数列 如:
randperm(4)
ans=
3 2 1 4
X(...) 取得X中相应元素产生新数列
扩展资料:
1、函数功能:随机打乱一个数字序列。
语法格式:
y = randperm(n)
y是把1到n这些数随机打乱得到的一个数字序列。
:rand相关函数
2、randperm的其他方式
如在C语言中实现n个数的随机排列应按照一下步骤
step 1: 随机生成n个小数
step 2: 对n个小数进行排序
step 3: 在新序列对应在原序列的位置索引,即为一个随机排列。
参考资料来源:百度百科-randperm
参考技术A使用函数randperm()即可实现。
例:
A = [7,6,3,9,10]; % 试验矩阵【用于试验,矩阵元素为待随机排列的数据】
randIndex_A = randperm(5); % 生成1到5这几个数的随机排列
B = A(randIndex_A); % 随机排列后的矩阵
每一行代码运行结果:
>>A = [7,6,3,9,10]
A = 7 6 3 9 10
>>randIndex_A = randperm(5)
randIndex_A =1 4 5 3 2
>> B = A(randIndex_A)
B =7 9 10 3 6
扩展资料
函数randperm()
1、语法格式:R = randperm(n)
2、函数功能:将数字1:n进行随机排列,排列结果存储在行向量内
3、例:输入 randperm(3)
输出 3 1 2
4、使用的方法:
利用索引值的随机排列,生成所有元素的随机排列
参考技术B X=X(randperm(numel(x)))numel(x)获得变量长度
randperm(n)产生长度为n的随机数列 如:
randperm(4)
ans=
3 2 1 4
X(...) 取得X中相应元素产生新数列本回答被提问者采纳 参考技术C 同意2楼的观点
就是这样,当然你也可以使用rand等生成其他随机数
MATLAB的简单随机生成函数
参考技术A 一、rand ():生成(0,1)区间上均匀分布的随机变量rand(5,1) %生成随机数排列的列向量。
rand(5)%生成5行5列的随机矩阵。
rand(5,2)%生成5行2列的随机矩阵。
x=rand(10000,1);
hist(x);%绘图,生成随机数的分布
二、randn ():生成(0,1)区间上正态分布的随机变量
randn(5,1)%生成随机数排列的列向量
randn(5)%生成5行5列的随机矩阵。
randn(5,2)%生成5行2列的随机矩阵。
x=randn(10000,1);
hist(x);%绘图,生成随机数的分布
三、连续型分布随机函数
unifrnd ():生成某个区间上均匀分布的随机变量
unifrnd(-2,3,5,1)%在(-2,3)区间内生成一列随机变量
unifrnd(-2,3,5)%在(-2,3)区间内生成5行5列的随机变量
unifrnd(-2,3,5,2)%在(-2,3)区间内生成5行2列的随机变量
x=unifrnd(-2,3,100000,1);
hist(x,50)%绘图,生成随机数的分布
normrnd ():生成指定均值,标准差的正态分布的随机变量
normrnd(2,3,5,1)%生成指定均值为2,标准差为3的正态分布的5行1列随机变量
normrnd(2,3,5)%生成指定均值为2,标准差为3的正态分布的5行5列的随机变量
normrnd(2,3,5,2)%生成指定均值为2,标准差为3的正态分布的5行2列的随机变量
x=unifrnd(-2,3,100000,1);
hist(x,50)%绘图,生成随机数的分布
chi2rnd():生成的随机数服从自由度为v的卡方分布
chi2rnd(5,5,1)%生成服从自由度为5的卡方分布的5行1列随机变量
chi2rnd(5,5)%生成服从自由度为5的卡方分布的的5行5列的随机变量
chi2rnd(5,5,2)%生成服从自由度为5的卡方分布的5行2列的随机变量
x=chi2rnd(5,100000,1);
hist(x,50)%绘图,生成随机数的分布
frnd():生成的随机数服从参数为w,v的t分布
frnd(3,5,5,1)%生成服从参数为(3,5)的f分布的5行1列随机变量
frnd(3,5,5)%生成服从参数为(3,5)的f分布的的5行5列的随机变量
frnd(3,5,5,2)%生成服从参数为(3,5)的f分布的5行2列的随机变量
x=frnd(3,5,10000,1);
hist(x,50)%绘图,生成随机数的分布
trnd():生成的随机数服从参数为v的t分布
trnd(5,5,1)%生成服从参数为5的t分布的5行1列随机变量
trnd(5,5)%生成服从参数为5的t分布的的5行5列的随机变量
trnd(5,5,2)%生成服从参数为5的t分布的5行2列的随机变量
x=trnd(5,100000,1);
hist(x,50)%绘图,生成随机数的分布
同理:
betarnd()%生成服从参数为(w,v)的Beta分布的随机数
exprnd() %生成服从参数为mu的指数分布的随机数
gamma()%生成服从参数为(w,v)的Gamma分布的随机数
lognrd()%生成服从参数为(mu,sigma)的对数正态分布的随机数
raylrnd()%生成服从参数为w的瑞利分布的随机数
wblrnd()%生成服从参数为(scale,shape)的对数正态分布的随机数
......
四、离散型分布随机函数
unidrnd()%生成服从离散均匀分布的随机数
unidrnd(5,5,1) %生成一列随机变量
unidrnd(5,5) %生成5行5列的随机变量
unidrnd(5,5,2) %生成5行2列的随机变量
x=unidrnd(9,100000,1);
hist(x,9) %绘图,生成随机数的分布
binornd() %生成的随机数服从参数为(N,p)的二项分布
binornd(10,0.3,5,1)%生成5个随机数排列的列向量
%注:上述语句生成的随机数所服从的参数为(10,0.3)的二项分布
binornd(10,0.3,5) %生成5行5列的随机数矩阵
%注:上述语句生成的随机数所服从的参数为(10,0.3)的二项分布
binornd(10,0.3,[5,2])%生成一个5行2列的随机数矩阵
%注:上述语句生成的随机数所服从的参数为(10,0.3)的二项分布
x=binornd(10,0.45,100000,1);
hist(x,11);%绘图,生成随机数的分布
geornd()%此函数生成服从几何分布的随机数。
geornd(0.4,5,1) %生成5个随机数排列的列向量
%注:上述语句生成的随机数所服从的参数为(0.4)的二项分布
geornd(0.4,5) %生成5行5列的随机数矩阵
%注:上述语句生成的随机数所服从的参数为(0.4)的二项分布
geornd(0.4,[5,2]) %生成一个5行2列的随机数矩阵
%注:上述语句生成的随机数所服从的参数为(0.4)的二项分布
x=geornd(0.4,100000,1);
hist(x,50)%绘图,生成随机数的分布
poissrnd() %生成服从泊松(Poisson)分布的随机数
poissrnd(2,5,1) %生成5个随机数排列的列向量
%注:上述语句生成的随机数所服从的参数为(2)的泊松分布
poissrnd(2,5) %生成5行5列的随机数矩阵
%注:上述语句生成的随机数所服从的参数为(2)的泊松分布
poissrnd(5,[5,2])%生成一个5行4列的随机数矩阵
%注:上述语句生成的随机数所服从的参数为(2)的泊松分布
x=poissrnd(2,100000,1);
hist(x,50);%绘图,生成随机数的分布
以上是关于MATLAB中,怎样把一组给定的数据随机排列?的主要内容,如果未能解决你的问题,请参考以下文章