correct use of randsrc function

14 views (last 30 days)
Akriti Raj
Akriti Raj on 9 Jun 2021
Answered: Walter Roberson on 10 Jun 2021
out = randsrc(1,1,[-3 -1 1 3; 0.1 0.4 0.4 0.1])
Error: Undefined function 'randsrc' for input arguments of type 'double'.
Aim: I want to display a random number from the set -3, -1, 1, 3 each with respective probabilities 0.1, 0.4, 0.4, 0.1

Answers (2)

Scott MacKenzie
Scott MacKenzie on 9 Jun 2021
Edited: Scott MacKenzie on 9 Jun 2021
There are lots of ways to do this, I suppose. Here's what I put together -- with a pesky twist. The weighting is built-in to the set. Just pull a value from set at random and the weighting is a natural outcome.
% define set
set = [-3 -1 -1 -1 -1 1 1 1 1 3];
% get random value from set (with built-in weighting)
set(randi([1 length(set)],1))

Walter Roberson
Walter Roberson on 10 Jun 2021

Categories

Find more on Dynamic System Models in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!