Rearrange any matrix Randomly with a specific sequence
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Mahmoud Khadijeh
le 22 Juin 2019
Commenté : Mahmoud Khadijeh
le 22 Juin 2019
Hello,
I have a Matrix A like this
A=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]'
I want to redistribute the matrix but I want to preserve a specifc sequence which is 5 here.
I mean I need a way to redistribute each five element randomly and assign them to a new matrix
for example:
the matrix B will be like this:
B=[6 7 8 9 10 11 12 13 14 15]'
the matrix C will be like this:
C=[ 1 2 3 4 5 16 17 18 19 20]'
Is that possible in MATLAB ?
Thanks,
4 commentaires
KALYAN ACHARJYA
le 22 Juin 2019
It seems simple, it would be better to answer if you clearly elaborate the question?
For the following inputs
A=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]'
Apart from above B and C, what are other possible outputs?
Réponse acceptée
infinity
le 22 Juin 2019
Here is an example that you can refer
a = 1:20;
b = randperm(4);
n = length(b);
for i = 1:n
c(5*(i-1)+1:5*i) = a(5*(b(i)-1)+1:5*b(i));
end
Plus de réponses (1)
TADA
le 22 Juin 2019
A=1:20;
blockSize = 5;
nOutputBlocks = 2;
a=reshape(A,blockSize,[]);
i=sort(reshape(randperm(size(a,2)),[],nOutputBlocks),2);
B=reshape(a(:,reshape(i',1,[])),blockSize*nOutputBlocks,[])
Voir également
Catégories
En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!