我是靠谱客的博主 潇洒大山,最近开发中收集的这篇文章主要介绍Matlab中关于随机流stream的使用(不完全),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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的使用(不完全)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(86)

评论列表共有 0 条评论

立即
投稿
返回
顶部