我想在matlab中找到矩阵中数字的位置

che*_*hee 7 matlab

我有一个矩阵可以说

x =
 2     2     3
 4     3     2
 6     4     8
Run Code Online (Sandbox Code Playgroud)

现在我想得到一个数字4的位置.
我想ans这样:

ans=(2,1) (3,2)
Run Code Online (Sandbox Code Playgroud)

因为这些是矩阵中4的位置.

Jon*_*rsi 1

ismember 将返回 1 或 0 的数组,具体取决于单元格值是否是您要搜索的值:

octave:9> x
x =

   2   2   3
   4   3   2
   6   4   8

octave:10> ismember(x,4)
ans =

   0
   1
   0
   0
   0
   1
   0
   0
   0
Run Code Online (Sandbox Code Playgroud)

然后你可以使用 find 和 ind2sub 来获取 1 的数组索引:

octave:11> [i,j] = ind2sub(size(x),find(ismember(x,4)))
i =

   2
   3

j =

   1
   2
Run Code Online (Sandbox Code Playgroud)

因此索引为 (2,1) 和 (3,2)。