MATLAB随机数抽样:从数组到结构,掌握抽取技巧
发布时间: 2024-06-14 20:56:04 阅读量: 261 订阅数: 62
利用Matlab实现对信号的抽取和升采样
![matlab产生随机数](https://www.atatus.com/blog/content/images/size/w960/2023/02/guide-to-math-random.png)
# 1. MATLAB随机数抽样的基本概念
随机数是计算机程序中不可预测的数字序列,在许多科学、工程和商业应用中至关重要。MATLAB提供了一系列函数来生成随机数,包括:
- **rand():**生成[0,1)之间的均匀分布随机数。
- **randn():**生成均值为0、标准差为1的正态分布随机数。
# 2. 从数组中抽取随机数
### 2.1 rand() 函数和 randn() 函数
**rand() 函数**用于生成一个介于 0 和 1 之间的均匀分布的伪随机数。该函数没有参数,返回一个双精度浮点数。
**语法:**
```
r = rand()
```
**代码块:**
```matlab
% 生成一个介于 0 和 1 之间的随机数
r = rand();
disp(r); % 输出:0.456789
```
**randn() 函数**用于生成一个服从标准正态分布的伪随机数。该函数没有参数,返回一个双精度浮点数。
**语法:**
```
r = randn()
```
**代码块:**
```matlab
% 生成一个服从标准正态分布的随机数
r = randn();
disp(r); % 输出:-0.234567
```
### 2.2 randi() 函数和 randi([a,b]) 函数
**randi() 函数**用于生成一个介于给定范围内的整数随机数。该函数有两个参数:
* `a`:范围的最小值
* `b`:范围的最大值
**语法:**
```
r = randi(b)
r = randi([a, b])
```
**代码块:**
```matlab
% 生成一个介于 1 和 10 之间的整数随机数
r = randi(10);
disp(r); % 输出:6
% 生成一个介于 5 和 15 之间的整数随机数
r = randi([5, 15]);
disp(r); % 输出:12
```
### 2.3 randsample() 函数
**randsample() 函数**用于从给定数组中随机抽取指定数量的元素。该函数有三个参数:
* `population`:要从中抽取元素的数组
* `k`:要抽取的元素数量
* `replacement`:是否允许重复抽取(默认为 false)
**语法:**
```
idx = randsample(population, k, replacement)
```
**代码块:**
```matlab
% 从一个数组中随机抽取 3 个元素,允许重复
arr = [1, 2, 3, 4, 5];
idx = randsample(arr, 3, true);
disp(idx); % 输出:[2 1 3]
% 从一个数组中随机抽取 3 个元素,不允许重复
arr
```
0
0