如何识别 Matlab 矩阵上特定值的 i,j 位置?
How do I identify the i,j position of a specific value on a Matlab matrix?
例如,我有一个有 400 行和 4000 列的矩阵 A,它主要由零组成,但有三个 1。我确实需要确切地知道这些占据什么位置,比方说 A(30,4000)、A(400,3050) 和 A(50,200)。
只需执行:
[row,col] = find(A);
这将为您提供所有非零条目的行和列位置。 row
将包含所有行位置,col
将包含所有列位置作为 N x 1
向量,其中 N
是非零元素的数量。在您的示例中,上面的输出相当于:
row = [30; 400; 50];
col = [4000; 3050; 200];
你只需要使用find(.)
功能。
例如,如果您有:
q=[1 2 3;1 2 4];
[r c]=find(q==2)
在这种情况下,r
包含所需值的行,c
包含所需值的列。
例如,我有一个有 400 行和 4000 列的矩阵 A,它主要由零组成,但有三个 1。我确实需要确切地知道这些占据什么位置,比方说 A(30,4000)、A(400,3050) 和 A(50,200)。
只需执行:
[row,col] = find(A);
这将为您提供所有非零条目的行和列位置。 row
将包含所有行位置,col
将包含所有列位置作为 N x 1
向量,其中 N
是非零元素的数量。在您的示例中,上面的输出相当于:
row = [30; 400; 50];
col = [4000; 3050; 200];
你只需要使用find(.)
功能。
例如,如果您有:
q=[1 2 3;1 2 4];
[r c]=find(q==2)
在这种情况下,r
包含所需值的行,c
包含所需值的列。