Greetings,
I have a vector of 12 elements (a = [10 20 35 38 40 45 48 50 55 58 60 75]') and I want to randomly select one element at a time. How can I do that? Thank you very much.

1 Kommentar

Stephen23
Stephen23 am 4 Jan. 2017
Bearbeitet: Stephen23 am 4 Jan. 2017
Adam's answer is the best use of MATLAB because it returns a vector, and it does not require the Statistics Toolbox.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Adam
Adam am 4 Jan. 2017
Bearbeitet: Adam am 4 Jan. 2017

1 Stimme

randA = a( randperm( numel(a) ) )
will give you them in a random order all at once. Then you can take them in turn if you wish.

2 Kommentare

how can i do that? thank you so much.
b = a(randperm(numel(a)));
for k = 1:numel(b)
b(k)
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

KSSV
KSSV am 4 Jan. 2017
Bearbeitet: KSSV am 4 Jan. 2017

1 Stimme

a = [10 20 35 38 40 45 48 50 55 58 60 75] ;
N = length(a) ;
pos = 1:N ;
idx = randsample(pos,N) ;
for i = 1:N
a(idx(i))
end

2 Kommentare

Thank you so much. I see in my output when running your script that all elements are accessed, how can I modify your script to get only one element at a time as an ouput and not all of them? (sorry, totally new to matlab)
randsample(a,1)

Melden Sie sich an, um zu kommentieren.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by