Matlab random number and while loop

Assume there are N different cards, the question is how many cards will I need to draw out before i get a full set of cards. this is what i've got so far B=[1:N]; draws=0;
while B~= zeros(1,N);
n=randi(N)
if n==B(n)
B(n)=0
draws=draws+1;
end
end
When i run this it gives only 1 value of n and always give me count=1 but i want this process to repeat untill I have only of each cards

 採用された回答

Akira Agata
Akira Agata 2017 年 2 月 20 日

2 投票

This is because B~= zeros(1,N) returns 1-by-N logical array.
Please revise the first line of your code to while any(B ~= zeros(1,N)) .

2 件のコメント

Walter Roberson
Walter Roberson 2017 年 2 月 20 日
Or, more simply,
while any(B)
Jack Huang
Jack Huang 2017 年 2 月 20 日
Thank you so much for your input, it amazing how a small change to my code can make such a different!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2017 年 2 月 20 日

コメント済み:

2017 年 2 月 20 日

Community Treasure Hunt

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

Start Hunting!

Translated by