我想在2D矩阵中找到特定值的索引。例如,有一个矩阵,如:
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”。
答案 0 :(得分:4)
您需要为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]