Random shuffle of vector elements
9 views (last 30 days)
Show older comments
Premysl Stastny on 5 Oct 2021
Commented: Fangjun Jiang on 5 Oct 2021
How to randomly shuffle all elements of the vector except the first and last position?
I have vector A=[5 1.5 1.6 1.7 5] and I want to randomly shuffle 2nd, 3rd 4th element while the 1st and the last will stay the same.
Constantino Carlos Reyes-Aldasoro on 5 Oct 2021
This can be easily done by addressing the vector correctly. First you need a random order to shuffle your elements. You can do that by using rand and then sort:
so b will be the order. Now you need to use that to re-order your vector, let's call the new vector A2:
A=[5 1.5 1.6 1.7 5];
A2 = [A(1) A(b+1) A(end)]
Now you have a new vector with the first and last same as they were, but 2:4 have been randomly shuffled.
Hope this solves your question.
More Answers (1)
do it in one shot
index=[ones(6,1), p, 5*ones(6,1)];
Find more on Logical 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!