2
$\begingroup$

Having a set of ordered numbers $ \{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 \} $ If you put them in a matrix so the index is at the same time the content

Matrix dimension $=$ row x col $= 3\times 4$ $ \begin{bmatrix} 1 &2 &3 & 4\\ 5 &6 & 7 & 8\\ 9 &10 &11 &12 \end{bmatrix} $ examples of getting the coordinates from $n=$index

$f_{row}(n)$ get the row, $f_{col}(n)$ get the column

$f_{row}(2) = 1, f_{col}(2) = 2$

$f_{row}(10) = 3, f_{col}(10) = 2$

$f_{row}(12) = 3, f_{col}(12) = 4$

They seems to be complex functions, i.e. (non-linear, bounded, etc..)

How are $f_{row}$ and $f_{col}$ defined?

I think a software equation, but it has functions like

$\operatorname{int}(\cdot), \operatorname{floor}(\cdot),\operatorname{mod}(\cdot)\ldots$ or worst a sequenced algorithm..

I don't know if there is some "math way" to do this, I mean with "basic operations" an "arithmetic" solution. Of course you could say "Floor and ceiling functions are math and even algorithms!" but simply put: Is there any series expansions/ other path for doing this? I would like to "relate index with dimentions", in some equation.

  • 0
    Also you have [this](http://www.mathworks.nl/help/comm/ref/vec2mat.html)2011-09-14

1 Answers 1

4

Well... In your case, with the $3 \times 4$-matrix you can express your functions as $f_\textrm{row}(n) = \lceil n / 4 \rceil$ where $\lceil x \rceil$ means the smallest integer larger or equal to $x$ ($x$ rounded up), and $f_\textrm{col}(n) = ((n-1) ~ \% ~ 4) + 1$ that is, the remainder of $(n-1)/4$ plus one.

If you have a $k \times m$-matrix: $f_\textrm{row}(n) = \lceil n / m \rceil$ and $f_\textrm{col}(n) = ((n-1) ~ \% ~ m) +1$

EDIT: Sorry, I did not read the last part of your question carefully enough (I assumed you wanted to use the expressions in some kind of computer program).

Given a step function $h$: $h(x) = \begin{cases} 0 & x < 0 \\ 1 & x \geq 0 \end{cases}$ you can express $f_\textrm{row}(n)$ for a $k \times m$-matrix as $f_\textrm{row}(n) = \sum_{i = 0}^k h(n - m i-1)$ where you can change the upper limit to $\infty$ and it will hold for all $k$.

The first values of $f_\textrm{col}(n)$ is $1, 2, 3, \dots, m, 1, \dots$ so we can set $f_\textrm{col}(n) = \sum_{i=1}^m h(n-i) ~~ \textrm{for} ~~ n = 1, \dots, m$ and then we want to make this periodic with period $m$. The easiest way is to use a modulo operation, but it can be achieved by introducing more sums: $f_\textrm{col}(n) = \sum_{i=1}^m h(n- i) + \sum_{j=1}^k \left( \sum_{i=1}^m h(n-i-jm) - m \cdot h(n-jm-1) \right)$ Once again you can set $k = \infty$ and still get the correct result for all $k$.

EDIT2: Here is another idea for $f_\textrm{col}$. Since $f_\textrm{col}(n) = n ~~ \textrm{for} ~~ n = 1, \dots, m$ you can probably get $f_\textrm{col}$ as a sawtooth wave with frequency $\frac{1}{m}$ and amplitude $m$. One probably should be careful when doing this to make sure that for example $f_\textrm{col}(m) = m$ and not $f_\textrm{col}(m) = 0$.

EDIT3: A sawtooth wave-like $f_\textrm{col}$ can be expressed as:

$f_\textrm{col}(n) = n - m \sum_{i=1}^k h(n - m i - 1) = n - m(f_\textrm{row}(n) - h(n-1))$

when $f_\textrm{row}$ is taken as the sum of $h$-functions above.

  • 0
    although $h$ is not linear and I also realize that $\sum_{}$'s are like algorithm loops, *it's a great answer*, I will test it, selected, thanks2011-09-14