2013-04-17 152 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),您可以轻松地将其全部放在一行中。