Index exceeds matrix dimensions
Afficher commentaires plus anciens
clear
clc
count_eight=0;
clear
clc
count_eight=0;
RandStream.setDefaultStream = (RandStream('mt19937ar','seed',sum(100*clock)));
roll=input('Enter number of rolls \n');
for rolling = 1:roll
dice1 = randi(6);
dice2 = randi(6);
end
if dice1+dice2==8
count_eight=count_eight+1;
end
fprintf('Percentage of times an 8 appeared %.1f ',count_eight(roll*100));
display('End of Program')
roll=input('Enter number of rolls \n');
for rolling = 1:roll
dice1 = randi(6);
dice2 = randi(6);
end
if dice1+dice2==8
count_eight=count_eight+1;
end
fprintf('Percentage of times an 8 appeared %.1f ',count_eight(roll*100));
display('End of Program')
ERROR MESSAGE:
??? Index exceeds matrix dimensions.
Error in ==> Homework10 at 51
fprintf('Percentage of times an 8 appeared
%.1f ',count_eight(roll*100));
Réponse acceptée
Plus de réponses (2)
Sven
le 6 Nov 2011
It's just a small typo, I think:
fprintf('Percentage of times an 8 appeared %.1f ',count_eight(roll*100));
should be:
fprintf('Percentage of times an 8 appeared in %.1f percent of rolls',count_eight/roll*100);
Let me clarify though: The error is caused by a typo. Note however that I don't think the program does what you intend.
Where you have written:
for rolling = 1:roll
dice1 = randi(6);
dice2 = randi(6);
end
if dice1+dice2==8
count_eight=count_eight+1;
end
Notice that you are only checking if dice one and two add up to 8 after the loop through many dice has finished. Ie, you're only checking once!
I think you want:
for rolling = 1:roll
dice1 = randi(6);
dice2 = randi(6);
if dice1+dice2==8
count_eight=count_eight+1;
end
end
There is, however, an even better way of doing that. This way is very "MATLABBY" because it doesn't use loops:
dice1 = randi(6,roll,1);
dice2 = randi(6,roll,1);
count_eight = sum(dice1+dice2 == 8);
Chris
le 7 Nov 2011
0 votes
Catégories
En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!