# Complex matrix structure

Is it possible to declare custom structures in Stan? For example, I am working with a dynamic HMM problem. There are 3 states, so I need a 3 x 3 matrix to contain all the parameters pertinent to each transition. Each transition has one intercept term xi, and 6 coefficients beta. Is there an efficient way to capture all these in one matrix declaration and be able to work with it?

I think

`matrix[3, 3] beta[k]`

would work.

That gives you indexing `beta[k, i, j]` if that’s what you want, or `beta[k]` to pick out a matrix.

The main problem with HMMs is that those matrices have to be simplex constrained if they’re the transition matrices, so you want to use something like:

``````simplex beta[K, 3];
``````

Same indexing structure, `beta[k, i, j]`, but now you are guaranteed to have a simplex. If you’re defining the matrix yourself using something like softmax over predictors, this would only give you error checking.

Vector[3,3] beta is exactly what I need for this. I don’t really need the matrix properties except an efficient way to access the beta vectors using row and column.

I’m confused. That won’t work. A `vector` only has one index.

to be exact, I am using

vector[K] beta[S,S];