Stopping a for loop when certain values have been reached
50 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ben Hatrick
el 16 de En. de 2022
I am running a for loop at want it to finish when a given number of values have all occured at least once. The ouputs of the for loop range from 1-9 (intagers) and I am saving the values into an array. I want to find how many iterations it takes for every number in this range to have occured at least once but am unsure how to code this. Any ideas would be greatly apprectiated.
0 comentarios
Respuesta aceptada
Voss
el 16 de En. de 2022
Editada: Voss
el 16 de En. de 2022
values = [];
n_tries = 1000;
for i = 1:n_tries
values(i) = randi(9);
if all(ismember(1:9,values))
break
end
end
display(i)
display(values)
It's probably better to use a while loop, so you don't have to set a maximum number of iterations (n_tries):
values = [];
i = 0;
while ~all(ismember(1:9,values))
i = i+1;
values(i) = randi(9);
end
display(i)
display(values)
4 comentarios
Torsten
el 16 de En. de 2022
Theoretical result is
9*(1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9) = 25.46
Not so far apart.
Torsten
el 17 de En. de 2022
Editada: Torsten
el 17 de En. de 2022
@Ben Hatrick Answer moved here:
This is a massive help, thanks so much!
Más respuestas (0)
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!