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