【问题标题】:Find the indices of a specific element in a 2D matrix查找二维矩阵中特定元素的索引
【发布时间】:2014-01-03 10:15:22
【问题描述】:

我想在二维矩阵中找到特定值的索引。例如有一个矩阵如:

A = 
    0 0 8 8 1
    0 6 7 1 1
    5 1 1 1 1

在这里,我想获取“0”的索引。所以,应该有一个像这样的数组:

indices = [(1,1) (1,2) (2,1)]

我该怎么做?我尝试使用 find() 函数,但它只返回一个坐标。但是,我想获取“0”的所有坐标。

【问题讨论】:

    标签: matlab matrix indexing


    【解决方案1】:

    find 需要使用两个输出:

    [row,col] = find(A==0)
    

    你得到的单一输出是线性索引。这是通过倒数列的元素编号,例如对于您的矩阵,这些是线性索引:

    1  4  7  10
    2  5  8  11
    3  6  9  12
    

    您也可以使用它来定位矩阵中的元素(因此对于您的示例,零位于线性索引124)。但是您要的是下标索引,因为您需要为 find 提供 2 个输出变量。

    但如果你想得到一个与indices 完全一样的矩阵,你需要连接我的rowcol 矩阵:

    indices = [row, col]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-10
      • 2014-04-22
      • 2013-01-03
      • 1970-01-01
      • 2014-05-22
      • 2012-02-24
      • 2017-04-19
      • 1970-01-01
      相关资源
      最近更新 更多