概述
clear all;
close all;
stream = RandStream('mt19937ar');
temp3 = randn(10,5);
temp4 = randn(10,5);
%结论:直接使用这个是基于全局流来产生的,每一次产生都是变化的
temp1 = randn(stream,10,5);
temp2 = randn(stream,10,5);
%结论:通过一个随机流产生的两个矩阵不相同,每一次产生都是不变的
在运行脚本之后,temp3与temp4是不相同,且与上一次产生的矩阵不相同。
temp1与temp2是完全不变的,基于同一个随机流。
clear all;
close all;
stream = RandStream('mt19937ar');
%RandStream.setGlobalStream(stream);
%使用setGlobalStream可以将全局流进行设置,然后直接使用rand randi randn生成的伪随机数都是通过这个随机流
streamstate = stream.State;
temp1 = randn(stream,10,5);
temp2 = randn(stream,10,5);
%结论:通过一个随机流产生的两个矩阵不相同
stream.State = streamstate;
temp3 = randn(stream,10,5);
temp4 = randn(stream,10,5);
%结论:通过保存随机流的状态重新使用这个随机流产生的随机矩阵一样
在脚本当中使用streamstate = stream.State;来保存当前流的状态,然后再使用stream.State将之前的状态还原,得到的结果是temp1=temp3,temp2=temp4。也就是在同一个随机流下产生的随机矩阵是相同的,保证了仿真过程当中的结果可以完全的复现。
更多关于randstream的相关操作可以通过help Randstraem在命令行当中得到相关文档
最后
以上就是潇洒大山为你收集整理的Matlab中关于随机流stream的使用(不完全)的全部内容,希望文章能够帮你解决Matlab中关于随机流stream的使用(不完全)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复