Info
Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.
Finding max value and its position in ed matrix
    11 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
Hello,
I know this question has alreayd been asked a million times, yet I have not managed to solve it by looking at previous documentation.
I have a 3d matrix. I want to find the max value in each "page" (max of 1st and 2nd dimension) along the third dimension. And I also want to know the indeces of the value. 
Here is my attempt at the code. 
C is my 3d matrix i want to get the max values from.
Cmax = zeros(1,numkx);
row = zeros(1,numkx);
column = zeros(1,numkx);
for c = 1 : numkx
    Cpage(:,:,c)= C(:,:,c);
    Cmax(:,:,c) = max(Cpage(:));
    [row,column] = find(Cpage(:) == Cmax(1,c));
end
0 Kommentare
Antworten (1)
  Andrei Bobrov
      
      
 am 27 Nov. 2019
        
      Bearbeitet: Andrei Bobrov
      
      
 am 27 Nov. 2019
  
      [m,~,k] = size(C);
[C_max_of_page,i] = max(reshape(C,[],k));
index_of_C_max_of_page = [mod(i-1,m)+1; ceil(i/m); (1:k)];
2 Kommentare
  Andrei Bobrov
      
      
 am 27 Nov. 2019
				
      Bearbeitet: Andrei Bobrov
      
      
 am 27 Nov. 2019
  
			I'm fixed answer.
>> C = randi(120,3,3,3)
C(:,:,1) =
    19    46    58
   103    23    15
    78    52    71
C(:,:,2) =
    28    31    32
    47    35    99
    70    75   118
C(:,:,3) =
    88    13    99
    42   109    32
    71   106    72
>> [m,~,k] = size(C);
[C_max_of_page,i] = max(reshape(C,[],k))
index_of_C_max_of_page = [mod(i-1,m)+1; ceil(i/m); (1:k)]
C_max_of_page =
   103   118   109
i =
     2     9     5
index_of_C_max_of_page =
     2     3     2
     1     3     2
     1     2     3
>> 
Diese Frage ist geschlossen.
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

