Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

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.

share|improve this question
1  
I think your $(-1,1)$ on the second matrix, first column, third row should be $(-1,-1)$. –  a.r. Jan 19 '12 at 4:21
add comment

2 Answers

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.