使用MATLAB功能块在Simulink中生成随机数

Zantonius

我试图用谷歌搜索这个问题,并在这里搜索问题和答案,但是我没有找到明确的答案,所以我正在做一个新的问题。希望不会有太大的麻烦!

我在Simulink中创建了一个仿真,其中有一个“ MATLAB函数”块,该块应从其他来源获取输入(我们可以将此源视为“常数”块),然后应用从该来源生成的随机数输入上的MATLAB功能块。

我的问题是,每次运行Simulink仿真时,我都会得到完全相同的随机数。我想知道是否有人可以帮助我解决我的问题?

这是代码(不是全部,而是所有重要的代码):

% function MC_output = randomizer(Stat_input)
%#codegen    minrand = 0.1;
    maxrand = 1.9;
    points = 10;    
    rand_numbers = Stat_input*minrand + rand(1, points).*(maxrand-minrand);
    MC_output = mean(rand_numbers);
end

我已经阅读了有关此解决方案的信息:

coder.extrinsic('rng');
rng('shuffle');

我以不同的方式使用它,但没有成功。一些帮助将不胜感激!哦,顺便说一句,我正在使用MATLAB R2012a。

预先感谢,尼古拉斯

菲尔·戈达德

从MATLAB Fcn块调用的rand与从MATLAB调用的rand不相同,因此rng('shuffle');对Simulink的随机数生成没有影响的原因

您可以通过执行以下操作来强制MATLAB Fcn模块使用MATLAB的rand函数:

function y = fcn
%#codegen
coder.extrinsic('rand','rng');
y = 0;

persistent atTime0
if isempty(atTime0)
    rng('shuffle');
    atTime0 = false;
end

y = rand;

或者您可以使用旧样式方法来重置随机数的种子

function y = fcn(seed)
%#codegen

persistent atTime0
if isempty(atTime0)
    rand('seed',seed);
    atTime0 = false;
end

y = rand;

但是更简单的方法是将随机数/向量作为由Uniform Random Number Generator模块生成的输入,其种子参数是随机设置的(使用MATLAB的rand函数)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用MATLAB功能块在Simulink中生成随机数

来自分类Dev

如何在Simulink Matlab功能块中使用符号

来自分类Dev

在MATLAB中生成随机数

来自分类Dev

在MATLAB中生成随机数

来自分类Dev

在Matlab功能块内绘制Simulink中的实时信号

来自分类Dev

如何在Matlab中生成唯一的随机数?

来自分类Dev

在MATLAB中生成随机数和序列密钥

来自分类Dev

在MATLAB中生成随机数单元格,如何?

来自分类Dev

在Matlab中生成多元正态分布的随机数

来自分类Dev

在Matlab中生成多元正态分布的随机数

来自分类Dev

在SQL中生成从未使用过的随机数

来自分类Dev

使用Java在JSP中生成随机数

来自分类Dev

在LESS CSS中生成随机数?

来自分类Dev

在Swift中生成随机数

来自分类Dev

在JavaScript中生成随机数

来自分类Dev

在Laravel中生成随机数

来自分类Dev

在Haskell中生成随机数

来自分类Dev

在Fortran模块中生成随机数

来自分类Dev

在.bashrc别名中生成随机数

来自分类Dev

在OpenCV中生成随机数矩阵

来自分类Dev

在delphi中生成随机数

来自分类Dev

在python中生成随机数?

来自分类Dev

在Solaris中生成随机数?

来自分类Dev

在JavaScript中生成随机数

来自分类Dev

在python中生成新的随机数?

来自分类Dev

在javascript中生成随机数

来自分类Dev

在Simulink中调试Matlab功能块时查看类属性

来自分类Dev

simulink(matlab功能块)中的可变大小矩阵导致编译错误

来自分类Dev

向量作为输入如何在 Simulink 的解释型 matlab 功能块中工作?