在矩阵中查找索引位置

时间:2013-04-17 22:40:02

标签: matlab search matrix

在这个例子中,我有一个矩阵(a)

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

我的目标是搜索矩阵a并找到不是> = 72的最高值的索引位置。矩阵仅用于说明,但我想知道如何为任何矩阵执行此操作行和列相等的维度(2x2 3x3 4x4 ...)

在这种情况下,我想计算约束中最高数字是

的事实

行= 3 Cols = 2

谢谢

1 个答案:

答案 0 :(得分: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),您可以轻松地将其全部放在一行中。