MATLAB Answers

How to display the results of a for loop

54 ビュー (過去 30 日間)
Jesse Schultz
Jesse Schultz 2019 年 9 月 10 日
回答済み: Urmila Rajpurohith 2019 年 9 月 13 日
I want to make a game of 21, that starts with the user getting two random cards and then printing out what they get, using a for loop keeps saying "Index exceeds the number of array elements(1)."
my code is
for i =1:2
card = randi([0 10]);
if (card ==0)
card = 'A'; %if the result is 0, rename it to A
end
end
fprintf("You have been given 2 cards, %d and %d" , card(i))

  1 件のコメント

Stephen Cobeldick
Stephen Cobeldick 2019 年 9 月 10 日
This defines a scalar numeric (an integer from 0 and 10, inclusive), which you name card:
card = randi([0 10])
Your code does not do anything that changes the size of card., or allocate/concatenate/etc it into any other variable. On each loop iteration you redefine card as a new scalar.
Then after the loop (whose last iteration defines i=2) you use this code:
card(i)
card only has one element (you defined it to be scalar), but you are trying to access its 2nd element. Thus the error.

サインイン to comment.

回答 (1 件)

Urmila Rajpurohith
Urmila Rajpurohith 2019 年 9 月 13 日
As mentioned above the variable “card” is a scalar.
To display the results of for loop you can create a Null vector and append the card value to the vector and while printing the output you can print the vector.
result=[];
for i =1:2
card = randi([0 10])
if (card ==0)
card = 'A'; %if the result is 0, rename it to A
end
result=[result card];
end
fprintf("You have been given 2 cards, %d %d", result);

  0 件のコメント

サインイン to comment.

サインイン してこの質問に回答します。

タグ


Translated by