Преобразовать (x, y) координаты в Matlab - PullRequest
0 голосов
/ 04 марта 2012

В Matlab у меня есть эта матрица:

Grid с размерами [x,y]

Я изменил ее в матрицу из одной строки

Rowразмеры [1,x*y].

Как узнать, где найти координату Grid(x,y) в матрице Row(1,?), и наоборот?Есть ли функция для этого в Matlab?

Ответы [ 3 ]

3 голосов
/ 04 марта 2012

Функции sub2ind и ind2sub должны соответствовать вашим запросам.

3 голосов
/ 04 марта 2012

Да, функции sub2ind и ind2sub - это то, что вы ищете. Я думаю.

0 голосов
/ 04 марта 2012

Можете ли вы предоставить больше информации о том, как вы «конвертируете матрицу»?

Стандартным способом является использование B = reshape(A,m,n), что можно увидеть в документации Matlab для http://www.mathworks.com/help/techdoc/ref/reshape.html

Reshape:

возвращает матрицу m-на-n B, элементы которой взяты по столбцам из A. Появляется ошибка, если A не имеет элементов m * n.

Например,

 a = [1,2,3;4,5,6;7,8,9]

     1     2     3
     4     5     6
     7     8     9


reshape(a,9,1)

     1
     4
     7
     2
     5
     8
     3
     6
     9

Таким образом, можно использовать sub2ind (matrixSize, rowSub, colSub), то есть

sub2ind([3,3], 2, 3)

, который, как и ожидалось, даст 8

...