1
$\begingroup$

In MatLab matrices, the indices are as follows:

(1,1) (1,2) (1,3)
(2,1) (2,2) (2,3)
(3,1) (3,2) (3,3)

This is an example 3x3 matrix. In corresponding cartesian coordinate system, the representation would be:

(-1,1) (0,1) (1,1)
(-1,0) (0,0) (1,0)
(-1,1) (0,-1) (1,-1)

Say, I have any square matrix with dimension-N, where N is odd. I need a generic transformation matrix such that I can get a vector as cartesian coordinates from matrix indices. Does such a function already exist? How should I go ahead in implementing this?

Thanks.

  • 1
    I think your $(-1,1)$ on the second matrix, first column, third row should be $(-1,-1)$.2012-01-19

2 Answers 2

3

The transformation of indices is the following:

$$ (x,y) = f(i,j) = \left( j-\frac{n+1}{2} ,-i + \frac{n+1}{2}\right) \ . $$

Here $i$ is the index for the rows, $j$ the one for the columns and $n$ the order of your square matrix.

0

Interchange indices $i$ and $j$ in initial matrix, then flip it upside down to get the same orientation like a usual coordinate system and then subtract $(2,2)$ or $(\frac{n+1}{2},\frac{n+1}{2})$ in general to shift the center.