How can I select a random number from a set multiple times without it selecting the same number twice?

2 次查看(过去 30 天)
I want matlab to spit back all of the numbers 1:10 in a random order, one at a time, without repeating a past response. How can I do this? Right now I have
i=1:10;
s=Sample(i)
But the problem is that it doesn't return all the numbers in the vector before repeating a response.
Thank you!!!
Edit: Basically, I have 10 image files, and I want to display them in a random order but one at a time. I want to use randperm to create a random vector of 1:10, and then have it pull images one at a time.. so if the permutation is, for example, 10 1 7 3 2 4 9 8 5 6, it would make command it to putimage(10, window), user clicks button, and then it goes to putimage(1).. putimage(7)... and so on.
The image files are just 1.jpeg so I am planning to use sprintf to write the number into putimage
Thanks!!

采纳的回答

Stephen23
Stephen23 2015-11-13
编辑:Stephen23 2015-11-13
for k = randperm(10)
disp(k)
... do something with k
end
  1 个评论
Stephen23
Stephen23 2015-11-13
编辑:Stephen23 2015-11-14
EDIT: The OP posted a long comment about wanting to do something with image files, but deleted it. My response anyway:
for k = randperm(10)
str = sprintf('%d.jpg',k);
... your code here
end

请先登录,再进行评论。

更多回答(1 个)

Adam
Adam 2015-11-13
randperm( 10 );

类别

Help CenterFile Exchange 中查找有关 Images 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by