Matlab使用rand函数随机生成数字或矩阵

文章目录(展开/隐藏→)

展开
4.3
(3)

今天,古哥给大家带来Matlab中可以随机生成数字得函数rand得使用方法,rand函数可以生成均匀分布得随机数、随机矩阵、随机数组等。

本文主要讲解rand函数得常见用法、语法说明、由随机数组成的矩阵、指定区间内的随机数、随机整数、随机复数、重置随机数生成器、由随机数组成的三维数组、指定随机数的数据类型、根据现有数组克隆大小、根据现有数组克隆大小和数据类型、克隆分布式数组等用法。

Matlab使用rand函数随机生成数字或矩阵

常见用法

X = rand
X = rand(n)
X = rand(sz1,...,szN)
X = rand(sz)
X = rand(___,typename)
X = rand(___,'like',p)
X = rand(s,___)

语法说明

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

X = rand(n)返回一个 n×n 的随机数矩阵。

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

X = rand(sz)返回由随机数组成的数组,其中大小向量 sz 指定 size(X)。例如:rand([3 4]) 返回一个 3×4 的矩阵。

X = rand(_,typename)返回由typename数据类型的随机数组成的数组。typename输入可以是'single'或 ‘double’。您可以使用上述语法中的任何输入参数。

X = rand(_,'like',p)返回由 p 等随机数组成的数组;也就是与 p 同一对象类型。您可以指定 typename 或 ‘like’,但不能同时指定两者。

X = rand(s,_)从随机数流 s 而不是默认全局流生成数字。要创建一个流,请使用 RandStream。指定 s,后跟上述语法中的任意参数组合,但涉及 ‘like’ 的组合除外。此语法不支持 ‘like’ 输入。

由随机数组成的矩阵

生成一个由介于 0 和 1 之间的均匀分布的随机数组成的 5×5 矩阵。

r = rand(5)

输出结果如下:

r =

    0.8147    0.0975    0.1576    0.1419    0.6557
    0.9058    0.2785    0.9706    0.4218    0.0357
    0.1270    0.5469    0.9572    0.9157    0.8491
    0.9134    0.9575    0.4854    0.7922    0.9340
    0.6324    0.9649    0.8003    0.9595    0.6787

指定区间内的随机数

生成一个由区间 (-5,5) 内均匀分布的数字组成的 10×1 列向量。

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

输出如下结果:

r =

    2.5774
    2.4313
   -1.0777
    1.5548
   -3.2881
    2.0605
   -4.6817
   -2.2308
   -4.5383
   -4.0287

一般来说,可以使用公式 r = a + (b-a).*rand(N,1) 生成区间 (a,b) 内的 N 个随机数。

随机整数

使用 randi 函数(而不是 rand)生成在 10 和 50 之间均匀分布的 5 个随机整数。

r = randi([10 50],1,5)

输出如下结果:

r =

    43    38    23    48    11

随机复数

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

a = rand + 1i*rand

输出如下结果:

a =

   0.4387 + 0.3816i

重置随机数生成器

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

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

输出如下结果:

r =

    0.7655    0.7952    0.1869    0.4898    0.4456

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

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

输出结果如下:

r1 =

    0.7655    0.7952    0.1869    0.4898    0.4456
Matlab使用rand函数随机生成数字或矩阵

始终使用 rng函数(而不是 rand 或 randn 函数)指定随机数生成器的设置。

由随机数组成的三维数组

创建一个由随机数组成的 3×2×3 数组。

X = rand([3,2,3])

输出结果如下:

X(:,:,1) =

    0.6463    0.2760
    0.7094    0.6797
    0.7547    0.6551


X(:,:,2) =

    0.1626    0.9597
    0.1190    0.3404
    0.4984    0.5853


X(:,:,3) =

    0.2238    0.5060
    0.7513    0.6991
    0.2551    0.8909

指定随机数的数据类型

创建一个由其元素为单精度值的随机数组成的 1×4 向量。

r = rand(1,4,'single')

输出结果如下:

r =

    0.9593    0.5472    0.1386    0.1493
class(r)

输出结果如下:

ans =

single
Matlab使用rand函数随机生成数字或矩阵

根据现有数组克隆大小

创建一个由正态分布的随机数组成并且大小与现有数组相同的矩阵。

A = [3 2; -2 1];
sz = size(A);
X = rand(sz)

输出结果如下:

X =

    0.2575    0.2543
    0.8407    0.8143

这里,我们也可以换一种简便写法,一种将前两行代码合并成一行的常见模式:

X = rand(size(A));

根据现有数组克隆大小和数据类型

创建一个由单精度随机数组成的 2×2 矩阵。

p = single([3 2; -2 1]);

创建一个与 p 具有相同大小和数据类型的由随机数组成的数组。

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

输出如下结果:

X =

    0.2435    0.3500
    0.9293    0.1966
class(X)

输出如下结果:

ans =

single
Matlab使用rand函数随机生成数字或矩阵

克隆分布式数组

如果您拥有 Parallel Computing Toolbox™,请创建一个由 single 基础数据类型的随机数组成的 1000×1000 分布式数组。对于 distributed 数据类型,’like’ 语法除了克隆主数据类型,还克隆基础数据类型。

p = rand(1000,'single','distributed');

工作区输出如下结果:

Starting parallel pool (parpool) using the 'local' profile ... connected to 4 workers.

创建一个与 p 具有相同大小、主数据类型和基础数据类型的由随机数组成的数组。

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

输出如下结果:

ans =

distributed
underlyingType(X)
ans =

    'single'
Matlab使用rand函数随机生成数字或矩阵

上面得underlyingType函数在我这里无法运行,因为我没装Parallel Computing Toolbox™。

共计3人评分,平均4.3

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

转载文章,原文出处:MathWorks官网,由古哥整理发布

如若转载,请注明出处:https://iymark.com/program/matlab-function-rand.html

(2)
上一篇 2021年04月16日 21:19
下一篇 2021年04月18日 22:19

相关推荐

  • Matlab二维绘图函数plot用法

    文章目录(展开/隐藏→) 展开常见语法单线条绘制多线条绘制二维数组绘图指定线型指定线型、颜色和标记在特定的数据点显示标记指定线宽、标记大小和标记颜色添加标题和轴标签绘制持续时间并指…

    2020年10月17日
    059
  • Matlab十二种线图绘图函数汇总

    文章目录(展开/隐藏→) 展开线图绘制函数对数图绘制函数函数作图方法 4.3 (3) 分享官方的各种绘图函数已经有一段时间了,今天先把之前分享过的十二种线图绘制函数汇总一下,分别有…

    2020年11月24日
    023
  • Matlab曲面图及其等高线图绘制函数surfc

    文章目录(展开/隐藏→) 展开常见用法语法说明显示曲面图下的等高线图指定曲面和等高线图的颜色图颜色修改曲面图和等高线图的外观 4.3 (3) 今天,来说下Matlab中如何使用su…

    2021年02月02日
    060
  • Matlab快速入门之线性代数:奇异值

    文章目录(展开/隐藏→) 展开分批 SVD 计算低秩 SVD 逼近 4.3 (3) 本文属于Matlab快速入门之线性代数的第五篇,即奇异值,主要包括分批 SVD 计算、低秩 SV…

    2022年09月28日
    010
  • Matlab使用length函数获取数组最大长度

    文章目录(展开/隐藏→) 展开常见用法语法说明向量元素数矩形矩阵的长度字符串数组结构体字段的长度 4 (2) 之前,古哥给大家分享了Matlab中size函数的使用方法,具体可以参…

    2021年04月23日
    084
  • Matlab streamline将向量绘制为流线图

    文章目录(展开/隐藏→) 展开常见用法语法说明绘制流线图 4.3 (3) 今天,给各位带来Matlab中可以将向量数组绘制为流线图的函数streamline。streamline函…

    2021年02月24日
    088

发表回复

登录后才能评论

评论列表(1条)

    本站APP