Shuffling a vector for n times to generate a new vector

2 views (last 30 days)
A is a vector. I want to shuffle its elements for n times to generate a new vector. For example:
A = [3 5 1];
out = [Shuffle(A) Shuffle(A) Shuffle(A)] % n = 3, but may be a large value
out =
1 5 3 5 1 3 5 3 1
For a large value of n, I can do it using a loop. But, I was wondering if there was any easy without looping. Thanks.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 22 Jul 2015
A = [3 5 1]
n=10
a=perms(1:3)'
m=size(a,1)
k=randi(m,n,1)
s=a(:,k)
out=A(s(:))

More Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!