怎样用MATLAB按比例生成随机矩阵

2021-01-02 20:47:09 字数 8723 阅读 2726

1楼:小虾米

思路:第一步,把90个0,3个1,7个2按照顺序写出来;第二步,将这些数字的排列顺序随机打乱;第三步,写成10*10矩阵的形式。

matlab程序:

a = [0*ones(1,90),1*ones(1,3),2*ones(1,7)];%第一步

inx = randperm(100);

b = a(inx);%第二步

c = reshape(b,[10 10]);%第三步

2楼:匿名用户

可以这样做.

data=[zeros(1,90),ones(1,3),2*ones(1,7)]; %这是100个数

index=randperm(length(data)); %这个是产生一个1到100的一个随机排列

ok=data(index) %最后再将data中的数按index打乱

matlab中怎样按一定比例生成矩阵

3楼:匿名用户

比如要生成m*n的0-1矩阵,其中有k个1m=4;n=5;k=6;%自己改

a=zeros(m,n);

a(randperm(m*n)<=k)=1;%a就是你要的矩阵

4楼:匿名用户

**********=提供

来一种思

源路bai

,还可du

以优zhi化dao*****===

>> clear;

>> m=600000;n=1000*1000-m;

>> a=ones(1,m);

>> b=zeros(1,n);

>> c=[a,b];

>> d=randperm(1000*1000);

>> x=c(d);

>> y=zeros(1000,1000);

>> y(:)=x;

>>

5楼:_漫步_云端

怎么个比例?随机生成?

matlab如何生成满足一定条件数要求的随机矩阵。

6楼:兔子和小强

你可以先构造特征值,使得最大特征值除以最小特征值为1000,再随机的生成正交矩阵作为特征向量矩阵,从而重构出所要的矩阵。如下所示,构造了个3*3的矩阵,其条件数为1000:

>> v = diag([1000 20 1]); % 只要最大除最小等于1000即可

>> u = orth(randn(3, 3));

>> a = u*v*u^-1;

>> cond(a)

ans =

1000.0000

下次问编程类问题选择问题分类为编程吧,这样可以贴**。

matlab 如何随机生成不重复的随机矩阵

7楼:

randperm。。。。。

说我回答太简洁。。。。。

就是这个函数么。。。。。

讨厌。。。。。

8楼:匿名用户

randi(9,3,3)

matlab如何随机生成矩阵并控制零元素所占比例

9楼:疏桐青枫

假设需要m*n的矩阵

a=rand(m,n);

a=1*(a>0.3);

怎样用matlab生成一个4行5列的间的随机矩阵

10楼:匿名用户

rand(4,5)%四行五列(0,1)之间的随机矩阵

%如果范围不在0-1之间,可以相应调整

ceil(rand(4,5)*10)%[1,10]之间随机整数

matlab中怎么产生一个随机矩阵

11楼:匿名用户

matlab中通过rand函数产生的是介于0到1(不包括1)之间的伪随机数。更多信息请在matlab命令窗口输入help rand获得帮助信息。

用法:1.rand(n)表示产生一个n×n的随机矩阵,n必须是整数,否则会报错。

2.rand(m,n)或rand([m n])产生m×n均匀分布的随机矩阵,元素取值在0.0~1.0。

3.x=rand(1,10);产生10个0~1的随机数。

12楼:匿名用户

rand(m,n)

产生mxn,0~1均匀分布的随机矩阵

怎么在matlab里生成一个8阶均匀分布的随机矩阵

13楼:匿名用户

最简单的答案:

>> a = rand(8)

a =0.8147 0.9575 0.

4218 0.6787 0.2769 0.

4387 0.7094 0.9597

0.9058 0.9649 0.9157 0.7577 0.0462 0.3816 0.7547 0.3404

0.1270 0.1576 0.7922 0.7431 0.0971 0.7655 0.2760 0.5853

0.9134 0.9706 0.9595 0.3922 0.8235 0.7952 0.6797 0.2238

0.6324 0.9572 0.6557 0.6555 0.6948 0.1869 0.6551 0.7513

0.0975 0.4854 0.0357 0.1712 0.3171 0.4898 0.1626 0.2551

0.2785 0.8003 0.8491 0.7060 0.9502 0.4456 0.1190 0.5060

0.5469 0.1419 0.9340 0.0318 0.0344 0.6463 0.4984 0.6991

14楼:匿名用户

均匀分布是什么意思? 每行的值符合均匀分布?

怎么用matlab随机生成系数矩阵

15楼:缘lai如茨

一、matlab在一个集合中随机取数:function 'randperm'

for example:

a=[1 2 3 4 5 6 7 8 9 10];

b=a(randperm(length(a)));

x=b(1:5);

matlab生成随机数据

matlab本身提供很多的函数来生成各种各样的随机数据:

normrnd 可以生成一定均值和标准差的正态分布

gamrnd 可以生成gamma分布的伪随机数矩阵

chi2rnd 可以生成卡方分布的伪随机数矩阵

trnd 可以生成t分布的伪随机数矩阵

frnd 可以生成f分布的伪随机数矩阵

raylrnd 可以生成rayleigh分布的伪随机数矩阵

关于具体的函数语法,你可以在matlab中用help命令得到更详细的说明。

我要说的是,这些生成的伪随机矩阵的标准差,均值等都是和你给的具体数据很接近的,但是,不是一样啊。也就是说matlab生成的伪随机矩阵不是一定准确的,只能是很接近的。另外,要明白什么是伪随机数。

随机数的生成通常有两种方法:一是依赖一些专用的电子元件发出随机信号,这种方法又称为物理生成法。另一类就是通过数学的算法,仿照随机数发生的规律计算出随机数,由于产生的随机数是有数学公式计算出来的,所以这类随机数又称为伪随机数。

你也可以让matlab生成一个随机的正态分布矩阵,然后用normstat来求得生成矩阵的真实方差和矩阵。其实matlab中求均值和方差的函数都是以*stat结尾的。比如上面的求正态分布的normstat,求gam分布的均值和方差的gamstat,求rayleigh分布的均值和方差的raylstat等。

同样的,还有以*pdf结尾的都是函数的概率密度,以*cdf结尾的函数是分布函数,以inv结尾的函数为逆分布函数求解函数。比如,正态分布的概率密度normpdf,正态分布的分布函数normcdf,正态分布的逆分布函数求解函数为norminv。同样道理的还有possion分布,gamma分布,卡方分布,t分布,f分布,rayleigh分布等,加上后缀都是相应的概率密度函数,分布函数。

二、统计编程:

此文纯粹是转贴

第4章 概率统计

本章介绍matlab在概率统计中的若干命令和使用格式,这些命令存放于matlabr12\toolbox\stats中.

4.1 随机数的产生

4.1.1 二项分布的随机数据的产生

命令 参数为n,p的二项随机数据

函数 binornd

格式 r = binornd(n,p) %n,p为二项分布的两个参数,返回服从参数为n,p的二项分布的随机数,n,p大小相同.

r = binornd(n,p,m) %m指定随机数的个数,与r同维数.

r = binornd(n,p,m,n) %m,n分别表示r的行数和列数

例4-1

>> r=binornd(10,0.5)

r =3

>> r=binornd(10,0.5,1,6)

r =8 1 3 7 6 4

>> r=binornd(10,0.5,[1,10])

r =6 8 4 6 7 5 3 5 6 2

>> r=binornd(10,0.5,[2,3])

r =7 5 8

6 5 6

>>n = 10:10:60;

>>r1 = binornd(n,1./n)

r1 =

2 1 0 1 1 2

>>r2 = binornd(n,1./n,[1 6])

r2 =

0 1 2 1 3 1

4.1.2 正态分布的随机数据的产生

命令 参数为μ,σ的正态分布的随机数据

函数 normrnd

格式 r = normrnd(mu,sigma) %返回均值为mu,标准差为sigma的正态分布的随机数据,r可以是向量或矩阵.

r = normrnd(mu,sigma,m) %m指定随机数的个数,与r同维数.

r = normrnd(mu,sigma,m,n) %m,n分别表示r的行数和列数

例4-2

>>n1 = normrnd(1:6,1./(1:6))

n1 =

2.1650 2.3134 3.0250 4.0879 4.8607 6.2827

>>n2 = normrnd(0,1,[1 5])

n2 =

0.0591 1.7971 0.2641 0.8717 -1.4462

>>n3 = normrnd([1 2 3;4 5 6],0.1,2,3) %mu为均值矩阵

n3 =

0.9299 1.9361 2.9640

4.1246 5.0577 5.9864

>> r=normrnd(10,0.5,[2,3]) %mu为10,sigma为0.5的2行3列个正态随机数

r =9.7837 10.0627 9.4268

9.1672 10.1438 10.5955

4.1.3 常见分布的随机数产生

常见分布的随机数的使用格式与上面相同

表4-1 随机数产生函数表

函数名调用形式

注 释unifrnd

unifrnd ( a,b,m,n)

[a,b]上均匀分布(连续) 随机数

unidrnd

unidrnd(n,m,n)

均匀分布(离散)随机数

exprnd

exprnd(lambda,m,n)

参数为lambda的指数分布随机数

normrnd

normrnd(mu,sigma,m,n)

参数为mu,sigma的正态分布随机数

chi2rnd

chi2rnd(n,m,n)

自由度为n的卡方分布随机数

trnd

trnd(n,m,n)

自由度为n的t分布随机数

frnd

frnd(n1, n2,m,n)

第一自由度为n1,第二自由度为n2的f分布随机数

gamrnd

gamrnd(a, b,m,n)

参数为a, b的分布随机数

betarnd

betarnd(a, b,m,n)

参数为a, b的分布随机数

lognrnd

lognrnd(mu, sigma,m,n)

参数为mu, sigma的对数正态分布随机数

nbinrnd

nbinrnd(r, p,m,n)

参数为r,p的负二项式分布随机数

ncfrnd

ncfrnd(n1, n2, delta,m,n)

参数为n1,n2,delta的非中心f分布随机数

nctrnd

nctrnd(n, delta,m,n)

参数为n,delta的非中心t分布随机数

ncx2rnd

ncx2rnd(n, delta,m,n)

参数为n,delta的非中心卡方分布随机数

raylrnd

raylrnd(b,m,n)

参数为b的瑞利分布随机数

weibrnd

weibrnd(a, b,m,n)

参数为a, b的韦伯分布随机数

binornd

binornd(n,p,m,n)

参数为n, p的二项分布随机数

geornd

geornd(p,m,n)

参数为 p的几何分布随机数

hygernd

hygernd(m,k,n,m,n)

参数为 m,k,n的超几何分布随机数

poissrnd

poissrnd(lambda,m,n)

参数为lambda的泊松分布随机数

4.1.4 通用函数求各分布的随机数据

命令 求指定分布的随机数

函数 random

格式 y = random('name',a1,a2,a3,m,n) %name的取值见表4-2;a1,a2,a3为分布的参数;m,n指定随机数的行和列

4.2 随机变量的概率密度计算

4.2.1 通用函数计算概率密度函数值

命令 通用函数计算概率密度函数值

函数 pdf

格式 y=pdf(name,k,a)

y=pdf(name,k,a,b)

y=pdf(name,k,a,b,c)

说明 返回在x=k处,参数为a,b,c的概率密度值,对于不同的分布,参数个数是不同;name为分布函数名,其取值如表4-2.

表4-2 常见分布函数表

name的取值

函数说明

'beta'

或'beta'

beta分布

'bino'

或'binomial'

二项分布

'chi2'

或'chisquare'

卡方分布

'exp'

或'exponential'

指数分布

'f'或

'f'f分布

'gam'

或'gamma'

gamma分布

'geo'

或'geometric'

几何分布

'hyge'

或'hypergeometric'

超几何分布

'logn'

或'lognormal'

对数正态分布

'nbin'

或'negative binomial'

负二项式分布

'ncf'

或'noncentral f'

非中心f分布

'nct'

或'noncentral t'

非中心t分布

'ncx2'

或'noncentral chi-square'

非中心卡方分布

'norm'

或'normal'

正态分布

'poiss'

或'poisson'

泊松分布

'rayl'

或'rayleigh'

瑞利分布

't'或

't't分布

'unif'

或'uniform'

均匀分布

'unid'

或'discrete uniform'

离散均匀分布

'weib'

或'weibull'

weibull分布

4.2.2 专用函数计算概率密度函数值

命令 二项分布的概率值

函数 binopdf

格式 binopdf (k, n, p) %等同于, p — 每次试验事件a发生的概率;k—事件a发生k次;n—试验总次数

命令 泊松分布的概率值

函数 poisspdf

格式 poisspdf(k, lambda) %等同于

命令 正态分布的概率值

函数 normpdf(k,mu,sigma) %计算参数为μ=mu,σ=sigma的正态分布密度函数在k处的值

专用函数计算概率密度函数列表如表4-3.

matlab怎么生成只有1 2 3 4这数的矩阵

1楼 匿名用户 很高兴为您解答,很简单的,就这样实现。 a 1 2 3 4 中间也可以使用空格进行隔开。 希望可以帮助你,祝学习进步! 2楼 匿名用户 这个这个,你没描述清楚哈。那就只能麻烦我分类给你解释了。看看那种情况符合你的要求 1 如楼上所说的,顺序产生一个 1 2 3 4 的矩阵,那就直接a...

怎么用matlab产生平均分布的随机数

1楼 昱婷漫步 rand函数生成的就是0 1之间之间符合平均分布的随机数,如 a rand 1 1000 hist a 生成的直方图为 matlab 怎么产生01分布随机数 2楼 紫色学习 在matlab 中产生0 1上均匀分布的随机数方法如下 方法1 对于问题,如果 y 是m n的服从0 1均匀分...