matlab rand(‘state’,42)

参数state相当于随机数种子,如果state确定的话,那么他所产生的随机数就是确定的了,比如,rand('state',0),然后运行三次U2=rand(3,1),结果是:U2 =

    0.9501
    0.2311
    0.6068
U2=rand(3,1)

U2 =

    0.4860
    0.8913
    0.7621
U2=rand(3,1)

U2 =

    0.4565
    0.0185
    0.8214
只要你每次在产生随机数之前都加上rand('state',0),那么他每次产生的随机数都是这些,而不会发生变化,但是如果不加的话就会有变化,而如果是rand('state',2),同样也是每次都产生确定的随机数,只是和rand('state',0)产生的随机数不一样
### Matlab 中 `rand` 函数的使用方法 #### 1. 基本功能 `rand` 是 MATLAB 提供的一个用于生成均匀分布随机数的函数。它返回一个或多个在区间 `[0,1]` 上均匀分布的伪随机数值[^1]。 #### 2. 语法形式 以下是 `rand` 的常见调用方式: - **单个随机数** 如果不指定参数,则返回单一随机数。 ```matlab r = rand; ``` - **N×N 随机矩阵** 返回大小为 N×N 的随机矩阵,其中每个元素都在 `[0,1]` 范围内。 ```matlab R = rand(N); ``` - **M×N 或更大维度数组** 可以通过指定两个或更多参数来创建多维随机数组。 ```matlab X = rand(M,N,P,...); % 创建 M×N×P... 维度的随机数组 ``` - **与现有数组相同尺寸的随机数组** 利用 `size(A)` 来获取 A 的尺寸并生成相应大小的随机数组。 ```matlab Y = rand(size(A)); ``` #### 3. 控制随机数种子 为了便于实验重复性和验证结果的一致性,在某些情况下可能需要设置随机数发生器的状态(即种子)。这可以通过如下命令实现: ```matlab rand('state',0); % 设置初始状态以便于重现相同的随机序列 ``` 此操作确保每次运行程序时产生的随机数序列一致[^2]。 #### 4. 示例代码 下面给出几个具体的例子展示如何运用该函数: ##### 单一随机数生成 ```matlab r_single = rand; % 获取单个位于[0,1]区间的浮点型随机数 disp(r_single); ``` ##### 方阵随机数生成 ```matlab R_matrix = rand(5); % 构建一个5*5阶的随机数方阵 disp(R_matrix); ``` ##### 大小匹配的随机数据集 假设存在一个已知向量 B=[7,8], 我们可以据此构建同样规模的新随机样本集合 C: ```matlab B = [7,8]; C = rand(size(B)); % 根据给定变量B定义新的同形随机组列C disp(C); ``` #### 5. 结合绘图功能的应用场景 除了单纯的数据模拟外,还可以配合其他可视化工具一起使用,比如绘制散点图或者三维表面模型等复杂图形。例如利用 scatter 和 surf 进行简单演示[^3]: ##### 散点图实例 ```matlab x = rand(1,100)*10; y=rand(1,100)*10; z=x.^2+y.^2; figure; scatter(x,y,[],z,'filled'); colorbar; title('Random Points with Color Indicating Distance from Origin'); xlabel('X-axis'); ylabel('Y-axis'); ``` ##### 曲面图示例 ```matlab [X,Y]=meshgrid(-2:.2:2,-2:.2:2); Z=X.*exp(-X.^2-Y.^2); surf(X,Y,Z+randn(size(Z))/10); shading interp colormap jet view(-37.5,30) title('Surface Plot of Z=f(X,Y)+Noise') ``` #### 6. 子图布局管理 当希望在同一窗口内安排多个独立的小图表时,可借助 subplot 实现灵活分区显示效果[^4]: ```matlab t=linspace(0,pi,1e3)'; data=sin(t).*cos(rand(length(t),1)); subplot(2,2,1); plot(data(:,1:end/4),'LineWidth',1.5); title('(a)') subplot(2,2,2); hist(data(:),sqrt(numel(data))); title('(b)') subplot(2,2,[3,4]); imagesc(corrcoef(toeplitz([ones(1,end)]))); axis image off; colorbar; title('(c)'); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值