如何用Python生成多个随机矩阵
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Python生成多个随机矩阵相关的知识,希望对你有一定的参考价值。
在Python里,如何生成多个不同的随机矩阵,就是需要一个循环,可以不断生成新的随机矩阵。比如说,我想生成10个2*2的随机矩阵,每个都不同,我不想把这行指令复制黏贴十遍。
求大神帮忙!!!!!
from numpy import random
randArray = random.random(size=(2,4))
random函数接收需要生成随机矩阵的形状的元组作为唯一参数。上面的代码将会返回一个两行四列的随机矩阵,随机数的值位于0到1之间,矩阵是numpy.array类型。除了random函数外,还有生成整数随机矩阵的函数randint等等。 参考技术A def CreateArrs(Rnum,Cnum,ArrSum):
可以定义一个类似这样的函数,然后传入,矩阵的行数,列数,以及生成的总数
然后生成即可。 参考技术B python
编写程序:产生一个随机
3
位正整数,并将该整数的数字首尾互换输出,例如:157
互换后为
751。
import random
a,b,c=random.randint(1,9),random.randint(0,9),random.randint(1,9)
print a*100+b*10+c
print c*100+b*10+a
如何用matlab生成高斯分布随机数
参考技术A 可调用matlab内部函数,格式为u=randn(N)或者u=randn(M,N),前者为N维向量,后者为M*N矩阵,
这种调用方式产生的随机序列均值为零,方差为1
例如:R
=
normrnd(Mu,
Sigma,
m,
n)
%产生服从N(Mu,
Sigma^2)
分布的m行n列的随机数组R 参考技术B m=10;
%产生m行n列的随机数矩阵
n=8;
miu1=1;%第一个分布的参数
sigma1=2;%第一个分布的参数
miu2=6;%第二个分布的参数
sigma2=1;%第二个分布的参数
r
=
0.2*normrnd(miu1,sigma1,m,n)+0.8*normrnd(miu2,sigma2,m,n);
单点的概率全是0,那你取出来的随机数算什么?
若干个随机数要满足统计分布,是要按区间统计的
另外我不知道你要做什么就是了。
你如果想按一定的概率密度来产生随机数,你最好用反函数法之类的来弄。
比如产生一个x.^2分布的随机数,不过这些要归一化。
============================================
首先,我知道我的是错的了。如下图就可知
m=1000;
%产生m行n列的随机数矩阵
n=1;
miu1=1;%第一个分布的参数
sigma1=2;%第一个分布的参数
miu2=6;%第二个分布的参数
sigma2=1;%第二个分布的参数
r
=
0.2*normrnd(miu1,sigma1,m,n)+0.8*normrnd(miu2,sigma2,m,n);
x=-5:0.001:15;
y1=normpdf(x,miu1,sigma1);
y2=normpdf(x,miu2,sigma2);
subplot(2,2,1);
plot(x,y1);
subplot(2,2,2);
plot(x,y2);
subplot(2,2,3);
y3=0.2*y1+0.8*y2;
plot(x,y3);
subplot(2,2,4)
dx=0.5;
xx=-5:dx:15;
yy=hist(r,xx);
yy=yy/m/dx;
plot(x,y3);
hold
on
bar(xx,yy)
=======================================
正确做法,我还没弄出来,继续中。。。。
============================================
_____________________新的尝试
下面的结果我觉得可能可以接受。
思路:基于反变换法
matlab下面有
p=normpdf(x,miu,sigma)是求出x处的概率密度。
p=normcdf(x,miu,sigma)是求出x
评论
0
0
加载更多
以上是关于如何用Python生成多个随机矩阵的主要内容,如果未能解决你的问题,请参考以下文章