MATLAB Answers

Shuffling a vector for n times to generate a new vector

12 views (last 30 days)
Shoaibur Rahman
Shoaibur Rahman on 22 Jul 2015
Answered: Azzi Abdelmalek on 22 Jul 2015
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.

Answers (1)

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(:))

Community Treasure Hunt

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

Start Hunting!