2012-11-28 9 views

risposta

33

utilizzare il secondo parametro di output della funzione max:

[ max_value, max_index ] = max([ 3 9 1 ]) 
+5

lavori per ottava troppo ! – sudocoder

3

mia soluzione standard è di fare

index = find(array == max(array), 1); 

che restituisce l'indice del primo elemento che è uguale al valore massimo. Si può giocherellare con le opzioni di find se si desidera che l'ultimo elemento, invece, ecc

1

Se è necessario per ottenere il valore massimo di ogni riga è possibile utilizzare:

array = [1, 2, 3; 6, 2, 1; 4, 1, 5]; 
[max_value max_index] = max(array, [], 2) 

%3, 3 
%6, 1 
%5, 3 
1
 
In Octave If 
A = 
    1 3 2 
    6 5 4 
    7 9 8 

1) For Each Column Max value and corresponding index of them can be found by 
>> [max_values,indices] =max(A,[],1) 
max_values = 
    7 9 8 
indices = 
    3 3 3 


2) For Each Row Max value and corresponding index of them can be found by 
>> [max_values,indices] =max(A,[],2) 
max_values = 
    3 
    6 
    9 
indices = 
    2 
    1 
    2 

Similarly For minimum value 

>> [min_values,indices] =min(A,[],1) 
min_values = 
    1 3 2 

indices = 
    1 1 1 

>> [min_values,indices] =min(A,[],2) 
min_values = 
    1 
    4 
    7 

indices = 
    1 
    3 
    1