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中,怎样把一组给定的数据随机排列?的主要内容,如果未能解决你的问题,请参考以下文章

解释下Matlab中cell2mat函数是怎样排列转换后数据的顺序的

Python怎么把一排数字输出三列

MATLAB的简单随机生成函数

Matlab怎样直接得到一组数据95%的置信区间

matlab中怎样求随机数的和、均方差、均值、平方

怎样用matlab随机调用三张图片