2013-04-17 214 views
1

在這個例子中,我有一個矩陣(一)查找矩陣中的索引位置

a = 1  2  3  7 
    0.9  0.6  0.2 0.2 
    0.8  17  72  15 

我的目標是通過矩陣來搜索,發現不是最高值的指數位置> = 72.矩陣只是爲了說明,但我想知道如何做到這一點的行和列相等的任何維度的矩陣(2x2 3x3 4x4 ...)

在這種情況下,我想計算事實上約束內的最高數字是

行數= 3列數= 2

感謝

+0

我不太明白這個問題。 15 <72,爲什麼不是答案(3,4)?當你有兩個指標(行和列)時,什麼是「最高價值的指標位置」? – nhowe

+0

他們正在尋找最高的數字<72,這將是17,或,(3,2) –

回答

4

第1步:確定你感興趣的值

val = max(a(a<72)); 

第2步:查找對應於該值的元素的索引:

[r,c] = find(a==val,1,'first'); #%only take first element (this can be changed) 
#r is the row index, c is the column index 

您也可以使用線性索引和ind2sub

l = find(a==val); #%this time, find all elements that meet the criteria 
[r,c] = ind2sub(size(a),l); 

以下是指向findind2sub的文檔的鏈接。您不必存儲感興趣的值(val),您可以輕鬆地將其全部放在一行中。