【发布时间】: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”的所有坐标。
【问题讨论】:
我想在二维矩阵中找到特定值的索引。例如有一个矩阵如:
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”的所有坐标。
【问题讨论】:
find 需要使用两个输出:
[row,col] = find(A==0)
你得到的单一输出是线性索引。这是通过倒数列的元素编号,例如对于您的矩阵,这些是线性索引:
1 4 7 10
2 5 8 11
3 6 9 12
您也可以使用它来定位矩阵中的元素(因此对于您的示例,零位于线性索引1、2 和4)。但是您要的是下标索引,因为您需要为 find 提供 2 个输出变量。
但如果你想得到一个与indices 完全一样的矩阵,你需要连接我的row 和col 矩阵:
indices = [row, col]
【讨论】: