2012-11-28 4 views

Antwort

33

Verwenden des zweiten Ausgangsargument der max Funktion:

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

Werke für Oktave zu ! – sudocoder

3

My Standardlösung ist

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

zu tun, die den Index des ersten Elements zurückgibt, der auf den Maximalwert gleich ist. Sie können mit den Optionen von find Geige, wenn Sie das letzte Element stattdessen wollen usw.

1

Wenn Sie den Maximalwert jeder Zeile erhalten müssen Sie verwenden können:

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