я хочу найти расположение числа в матрице в Matlab - PullRequest
7 голосов
/ 02 октября 2010

У меня есть матрица, скажем,

x =
 2     2     3
 4     3     2
 6     4     8

Теперь я хочу получить местоположение числа 4.
Я хочу ans, как это:

ans=(2,1) (3,2)

поскольку это места для 4 в матрице.

Ответы [ 2 ]

14 голосов
/ 03 октября 2010

Использование find:

[i,j] = find(x == 4)
1 голос
/ 02 октября 2010

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

И затем вы можете использовать find и ind2subполучить массив значений 1:

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

   2
   3

j =

   1
   2

Так что показатели (2,1) и (3,2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...