# 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`，后跟上述语法中的任何输入参量组合。`

## 示例

`r = rand(5)`
```r = 5×5 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 ```

`r = -5 + (5+5)*rand(10,1)`
```r = 10×1 3.1472 4.0579 -3.7301 4.1338 1.3236 -4.0246 -2.2150 0.4688 4.5751 4.6489 ```

`r = randi([10 50],1,5)`
```r = 1×5 43 47 15 47 35 ```

```s = rng; r = rand(1,5)```
```r = 1×5 0.8147 0.9058 0.1270 0.9134 0.6324 ```

```rng(s); r1 = rand(1,5)```
```r1 = 1×5 0.8147 0.9058 0.1270 0.9134 0.6324 ```

`X = rand([3,2,3])`
```X = X(:,:,1) = 0.8147 0.9134 0.9058 0.6324 0.1270 0.0975 X(:,:,2) = 0.2785 0.9649 0.5469 0.1576 0.9575 0.9706 X(:,:,3) = 0.9572 0.1419 0.4854 0.4218 0.8003 0.9157 ```

`r = rand(1,4,"single")`
```r = 1x4 single row vector 0.8147 0.9058 0.1270 0.9134 ```
`class(r)`
```ans = 'single' ```

```A = [3 2; -2 1]; sz = size(A); X = rand(sz)```
```X = 2×2 0.8147 0.1270 0.9058 0.9134 ```

`X = rand(size(A));`

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

`X = rand(size(p),"like",p)`
```X = 2x2 single matrix 0.8147 0.1270 0.9058 0.9134 ```
`class(X)`
```ans = 'single' ```

`a = rand(10,1,"like",1i)`
```a = 10×1 complex 0.8147 + 0.9058i 0.1270 + 0.9134i 0.6324 + 0.0975i 0.2785 + 0.5469i 0.9575 + 0.9649i 0.1576 + 0.9706i 0.9572 + 0.4854i 0.8003 + 0.1419i 0.4218 + 0.9157i 0.7922 + 0.9595i ```

## 输入参数

• 如果 `n``0`，则 `X` 为一个空矩阵。

• 如果 `n` 为负数，则将其视为 `0`

• 如果任一维度的大小为 `0`，则 `X` 为空数组。

• 如果任何维度的大小为负值，则其将被视为 `0`

• 对于第二个维度以上的维度，`rand` 忽略大小为 1 的尾部维度。例如，`rand(3,1,1,1)` 生成由随机数组成的 3×1 向量。

• 如果任一维度的大小为 `0`，则 `X` 为空数组。

• 如果任何维度的大小为负值，则其将被视为 `0`

• 对于第二个维度以上的维度，`rand` 忽略大小为 1 的尾部维度。例如，`rand([3 1 1 1])` 生成由随机数组成的 3×1 向量。

## 提示

• `rand` 生成的数字序列由均匀伪随机数生成器的内部设置决定，该生成器是 `rand``randi``randn` 的基础。您可以使用 `rng` 控制这一共享的随机数生成器。