Using a MATLAB function-block in Simulink to generate random numbers
5 次查看(过去 30 天)
显示 更早的评论
Hello!
I've tried to both google this question and search among the questions and answers here, but I've found no definitve answer to my question so I'm making a new one. Hopefully it won't be too much trouble!
I'm creating a simulation in Simulink where I have a "MATLAB function"-block that is supposed to take input from another source (we can consider this source a "Constant"-block) and then apply a random number that is generated from the MATLAB function-block on the input.
My problem is that I get the exact same randomized numbers every single time I run the Simulink simulation. And I was wondering if someone could help me solve my problem?
Here is the code (not all of it, but all of it that matters):
% 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
I've read about this solution, but it doesn't work for me
coder.extrinsic('rng');
rng('shuffle');
In different ways but with no success. Some help would be greatly appriciated! Oh, and btw, I'm using MATLAB R2012a.
Thanks in advance, Niklas
0 个评论
回答(1 个)
A Jenkins
2014-6-25
Add also:
coder.extrinsic('rand')
to the beginning of your code.
2 个评论
A Jenkins
2014-6-25
function MC_output = fcn(Stat_input)
coder.extrinsic('rng');
coder.extrinsic('rand')
rng('shuffle');
minrand = 0.1;
maxrand = 1.9;
points = 10;
z=zeros(1, points);
z=rand(1, points);
rand_numbers = Stat_input*minrand + z.*(maxrand-minrand);
MC_output = mean(rand_numbers);
end
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Sources 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!