如何在Matlab矩阵中识别特定值的i,j位置?

时间:2015-03-26 19:28:42

标签: matlab matrix coordinates

例如,我有一个包含400行和4000列的矩阵A,它主要由零组成,但有三个。我确实需要知道这些占据的确切位置,让我们说A(30,4000),A(400,3050)和A(50,200)。

2 个答案:

答案 0 :(得分:5)

简单地说:

[row,col] = find(A);

这将为您提供所有非零条目的行和列位置。 row将包含所有行位置,col将包含所有列位置N x 1向量,其中N是非零元素的数量。在您的示例中,上面的输出将等同于:

row = [30; 400; 50];
col = [4000; 3050; 200];

答案 1 :(得分:2)

您只需要使用find(.)功能。 例如,如果你有:

q=[1 2 3;1 2 4];
[r c]=find(q==2)

在这种情况下,r包含行,c包含所需值的列。