How to exchange a few rows randomly between matrices A and B (matrix B is selected randomly from a set of N matrices)?
1 次查看(过去 30 天)
显示 更早的评论
For example we have ‘ResultM’ which gives 5 matrices A, B, C, D, E and we have to exchange a few random rows between matrix A and any other matrix B selected randomly from these 5 matrices. First we select a matrix randomly from 5 matrices and then we select a few rows randomly and exchange rows between these matrices (matrix A and matrix selected randomly). Same process is followed for all the matrices of the set.
Eg.row exchange operation between matrix A and randomly selected matrix
then between matrix B and randomly selected matrix
then between matrix C and randomly selected matrix
then between matrix D and randomly selected matrix
then between matrix E and randomly selected matrix
A new random matrix is chosen for each row exchange operation.
For example we have matrix A
A = [0 0 0 1 0 0 0
0 0 1 0 0 0 0
0 0 0 0 0 1 0
0 1 0 0 0 0 0
0 0 0 0 0 0 1]
And we randomly choose matrix D (say)
D = [0 1 0 0 0 0 0
1 0 0 0 0 0 0
0 0 0 1 0 0 0
0 0 0 0 1 0 0
0 0 1 0 0 0 0]
Then we select a few rows randomly (say 2 and 4) and exchange.
The resulting matrices are
A = [0 0 0 1 0 0 0
1 0 0 0 0 0 0
0 0 0 0 0 1 0
0 0 0 0 1 0 0
0 0 0 0 0 0 1]
D = [0 1 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 1 0 0 0
0 1 0 0 0 0 0
0 0 1 0 0 0 0]
Similarly, we perform row exchange operation for all the matrices of the set.
2 个评论
KSSV
2017-1-16
@Stephen Cobeldick
I remember this question from Manish Kumar. I didn't close it and answered the question because there is an extra step involved in this present question. I thought it would be helpful for the user.
采纳的回答
KSSV
2017-1-16
编辑:KSSV
2017-1-16
A = rand(5,7,5) ; % your A,B,C,D and E matrices in 3D
A0 = A ;
[m,n,p] = size(A) ;
for i = 1:p
idx = randperm(p,2) ; % selecte two rows randomly
matrices = randperm(p,1) ; % select one matrix randomly
A(idx,:,matrices) = A(idx,:,i) ; % replace random rows in selected matrix
end
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!