📄 randu1.m
字号:
%%线性同余伪随机数发生器
%输入格式举例:randmtx=randU1(10,10,10000,0,1)
%row为 伪随机数的行数 col伪随机数阵列的列数 seed为种子
%k1k2为随机数的范围 k1=0 k2=1表示结果从0-1之间的数
function randmtx=randU1(row,col,seed,k1,k2)%%没有输入seed值时用自己默认的数做种子
if nargin<3
seed=1973272912;
end
m=2^31-1;%很大的一个素数
a=630360016;
randmtx(1,1)= mod(a*seed,m);
for i=2:row*col
randmtx(1,i)=mod((a*randmtx(1,i-1)),m);
end
randmtx=reshape(randmtx,row,col);
if nargin<4
randmtx=randmtx/m;
return
end
randmtx=randmtx/m;%将数据缩放到要求的区间
randmtx=randmtx*(k2-k1)+k1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -