How to get the highest values on a matrix depending on the values of another matrix
    7 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Victor Francisco Pajuelo Madrigal
 el 11 de Sept. de 2015
  
    
    
    
    
    Editada: Victor Francisco Pajuelo Madrigal
 el 11 de Sept. de 2015
            I want to sort out the values of a matrix (A) depending on another independent matrix (B), and create a third matrix with the results (C). See the example:
    A = [1 2 1; 4 1 3; 3 8 2]
    B = [1 2 3; 4 5 6; 7 8 9]
    C = [5 9 5; 4 5 7; 7 8 9]
Therefore, for the same elements on A, I want to find the highest elements on B. For instance, for values of 1, I want to loop through B until finding the highest value related, that in the example is 5. Then I want to pass all the values to a new matrix C.
I have tried with generating my own functions or using loop, but I found no solution after 4 days of trying this. Would appreciate some explanation if I am missing something or not understanding the properties of matrices in Matlab, I am quite used to Python and R, but in Matlab I am a newbie.
Thanks!
0 comentarios
Respuesta aceptada
Más respuestas (1)
  Guillaume
      
      
 el 11 de Sept. de 2015
        A = [1 2 1; 4 1 3; 3 8 2];
B = [1 2 3; 4 5 6; 7 8 9];
assert(isequal(size(A), size(B)), 'matrix A and B have different size');
C = zeros(size(A));  %destination matrix
for ua = unique(A)'  %iterate over the unique values of A
    C(A == ua) = max(B(A == ua)); %for those value of A that are ua, update C with the max of B
end
1 comentario
  Victor Francisco Pajuelo Madrigal
 el 11 de Sept. de 2015
				
      Editada: Victor Francisco Pajuelo Madrigal
 el 11 de Sept. de 2015
  
			Ver también
Categorías
				Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.
			
	Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

