2013-06-15 31 views
6

Tôi chỉ muốn tìm tất cả các chỉ số của giá trị lớn nhất trong một vectơ trong MATLAB. hàm max chỉ trả về chỉ số của lần xuất hiện đầu tiên của giá trị cực đại. Ví dụ:tìm tất cả các chỉ số giá trị tối đa matlab

maxChaqueCell = [4  5  5  4] 
[maximum, indicesDesMax] = max(maxChaqueCell) 
maximum = 

     5 
indicesDesMax = 

     2 

Tôi cần indicesDesMax có 2 và 3 đó là những chỉ số của hai 5 chúng tôi có trong maxChaqueCell, làm thế nào tôi có thể làm điều đó?

Cảm ơn.

Trả lời

9

Trước tiên, bạn tìm giá trị tối đa, sau đó bạn tìm thấy tất cả các yếu tố tương đương với:

m = max(myArray); 
maxIndex = find(myArray == m); 

Hoặc sử dụng tên biến của bạn:

maxChaqueCell = [4 5 5 4]; 
maximum = max(maxChaqueCell) 
indicesDesMax = find(maxChaqueCell == maximum); 

Đây là cách bạn tìm thấy tất cả trong số họ, không chỉ là người đầu tiên.

+0

Cảm ơn sự giúp đỡ nhanh chóng của bạn – Maystro

1
[value,index] = sort(maxChaqueCell,'descend'); 

sortedmaximums = [value,index]; 
Các vấn đề liên quan