Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am debuging my Kalman filter and the Jacobian matrix of partial derivatives of h(measurement function) with respect to x(state) is not n×n, it is 13×16.

$\displaystyle \quad\ \bf H_{[i,j]}$ = $\bf \frac{\partial h_{[i]}}{\partial x_{[j]}}(\tilde x_k,0)$

I would like to extract as much information as possible and one the things I thought of was eigenvalues, but it is not square. I wonder if I can zeropadd and make it square.

Is there any sense?

share|cite|improve this question
up vote 2 down vote accepted

That depends on what you are doing (I have no idea about your application). But a priori filling with zeros does imo make sense. A $n\times m$ matrix can be understood as a linear map $\mathbb R^m\to \mathbb R^n$. Here you have $n=13<m=16$. You have two options now which eventually should give the same result.

First you realise that you can perform row and column operations to reduce your matrix to a non-trivial $13\times 13$ matrix and a $13\times 3$ block of zeros. This means that you split the bigger $\mathbb R^m$ into two subspaces, one of dimension $3$ which is mapped to $0$ and one of dimension $13$ which still maps surjectively on the image of the original linear map. All information is then concentrated in the $13\times 13$ block and this should give you some information.

Or you fill the matrix with zeros to get a $16\times 16$ matrix. This corresponds to changing your target space where the additional dimensions are not hit by your map. The image will then still live in a $13$-dimensional subspace of $\mathbb R^{16}$. But diagonalising will give you a nontrivial $13\times 13$ block in the $16\times 16$ matrix again. This will look like the $13\times 13$ block as above.

Edit: Just a comment on a possible application (I still don't get it, and won't without spending a lot more time on it, whcih I won't;P ). All row and column operations perform base changes on the source or the target. This somehow assumes that all dimensions have equal rights. So if all dimensions correspond to positions for example, then changing the base will just correspond to a coordinate change. If some dimensions correspond to positions and some, say, to velocities you will end up with mixed expressions after changing your base. This might or might not make sense.

share|cite|improve this answer
Thanks. I will have give a try to the first option. And respect to my application that matrix is a Jacobian that maps the state of my system, wich has 13 components (position, orientation and velocities) with 8 measured points (x and y). The realation is given by writing each state component as a fucntion of the points projected by the homography matrix. – Jav_Rock Jun 7 '12 at 11:03

Your Answer


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.