How to select two matrices randomly from a set of N matrices and then randomly select a few rows from first selected matrix and then exchange with corresponding rows of other selected matrix.

조회 수: 4 (최근 30일)
For example we have 10 matrices A,B,C,D,E,F,G,h,I,J and we select randomly two matrices C and H. And then Randomly select any two rows from C and exchange with corresponding rows of H.

답변 (2개)

Thorsten
Thorsten 2016년 10월 25일
편집: Thorsten 2016년 10월 25일
Q = cat(3,A,B,C,D,E,F,G,H,I,J);
kk = randperm(size(Q, 3), 2); % select 2 matrices from Q
ii = randperm(size(Q, 1), 2); % select 2 rows
Q(ii, :, kk) = Q(ii, :, fliplr(kk));

Andrei Bobrov
Andrei Bobrov 2016년 10월 25일
For the case where the matrices have the same size:
Q = cat(3,A,B,C,D,E,F,G,H,I,J);
ii = [3,8] % C and H
n = size(Q,1);
z = 1:n;
jj = z(randperm(n,2));
M = Q(:,:,ii);
M(jj,:,:) = M(jj,:,end:-1:1);
Q(:,:,ii) = M;

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by