How to exchange a few rows randomly between matrices A and B (matrix B is selected randomly from a set of N matrices)?
    3 次查看(过去 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 中查找有关 Creating and Concatenating Matrices 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


