可用于神经网络的一些matlab函数

可用于神经网络的一些matlab函数

(来自matlab文档)

1.用于样本初始化等的函数rand

%返回一个在区间 (0,1) 内均匀分布的随机数

X = rand; 

%返回一个 n×n 的随机数矩阵

X = rand(n) 

%返回一个 3×4 的矩阵。其中 sz1,…,szN 指示每个维度的大小

X = rand(3,4) 

%返回由随机数组成的数组,其中大小矢量 sz 指定 size(X)。

X = rand(sz) %例如:rand([3 4]) 返回一个 3×4 的矩阵。

%返回由 typename 数据类型的随机数组成的 1×4 矢量。typename 输入可以是单精度 ‘single’ 或双精度 ‘double’。默认为double

X = rand(1,4,typename) 

%创建一个与 p 具有相同大小和数据类型的由随机数组成的数组。。您可以指定 typename 或 ‘like’,但不能同时指定两者。

X = rand(size(p),'like',p) 

%生成一个实部和虚部位于区间 (0,1) 内的随机复数。

a = rand + 1i*rand 

注意: 不建议对 rand 函数使用 ‘seed’、’state’ 和 ‘twister’ 输入。请改用 rng 函数。有关详细信息,请参阅更换阻拦的 rand 和 randn 语法。


举例常用:
生成一个由区间 (-5,5) 内均匀分布的数字组成的 10×1 列矢量

r = -5 + (5+5)*rand(10,1);

结果得到输出为

r =

    3.1472
    4.0579
   -3.7301
    4.1338
    1.3236
   -4.0246
   -2.2150
    0.4688
    4.5751
    4.6489

附:一般来说,可以使用公式 r = a + (b-a).*rand(N,1) 生成区间 (a,b) 内的 N 个随机数。
而对于对称的形式,即a+b=0,即要产生(-b,b),有

r = -b +(2*b).rand(N,1);

2.用于生成随机整数的函数randi

X = randi(imax,sz1,...,szN) %返回 sz1×...×szN 数组,其中 sz1,...,szN 指示每个维度的大小。例如,randi(10,3,4) 返回一个由介于 110 之间的伪随机整数组成的 3×4 数组。
r = randi([10 50],1,5)

生成在 10 和 50 之间均匀分布的 5 个随机整数——

r =

    43    47    15    47    35

3.正态分布的随机数randn

X = randn(sz1,...,szN) 
%返回由随机数组成的 sz1×...×szN 数组,其中 sz1,...,szN 指示每个维度的大小。例如:randn(3,4) 返回一个 3×4 的矩阵。

4.重置随机数生成函数

保存随机数生成函数的当前状态并创建一个由随机数组成的 1×5 矢量。

s = rng;
r = rand(1,5)
r =

    0.8147    0.9058    0.1270    0.9134    0.6324

将随机数生成函数的状态恢复为 s,然后创建一个由随机数组成的新 1×5 矢量。值与之前相同。

rng(s);
r1 = rand(1,5)
r1 =

    0.8147    0.9058    0.1270    0.9134    0.6324

猜你喜欢

转载自blog.csdn.net/petSym/article/details/78442349