Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Help - Rolling Dice Simulation

Asked by Aaron on 10 Mar 2011

I have to write a script that uses the user input to roll a certain amount of dice, with a certain amount of sides, with a certain amount of rolls , and a certain amount of trials.

I have the whole user input part down, but I'm having trouble writing a function for rolling the dice.

function [ X ] = Dice( N, S, T, R ) % Dice simulates a random selection of numbers which is similar to how a % dice is rolled % % N is the number of dice the user wants to roll % S is the number of sides on the dice % T is the number of trials that the user wants to run. % R is the number of rolls that the user wants to roll each dice.

D =ceil(S*rand(1,N))

% I used this for one roll of the dice

Counts = hist(D,[1:S]);

% Then I used this to count how many of each number showed up

How do I write the code so that I can factor in the amount of trials and rolls? I know I probably have to do something with for loops, but I'm very confused and I can't think of anything at the moment.

1 Comment

Oleg Komarov on 10 Mar 2011

Does R change across dice?

Aaron

Products

No products are associated with this question.

1 Answer

Answer by Oleg Komarov on 10 Mar 2011
S = 6;  % six faces
R = 3;  % each dice is rolled 3 times
N = 10; % roll 10 dice at once
T = 2;  % repeat all 2 times
Out = randi([1 S],[R N T])
Out(:,:,1) =
     5     6     2     6     6     1     5     1     5     3
     6     4     4     1     3     3     6     6     5     4
     1     1     6     6     5     6     4     6     5     2
Out(:,:,2) =
     5     1     5     1     5     3     5     5     1     3
     1     1     2     3     5     3     5     4     3     4
     2     5     6     3     2     4     2     1     6     2

Each slice (on the third dimension) is a trial.

Each column is a dice rolled 3 times.

Oleg

0 Comments

Oleg Komarov

Contact us