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[6]. 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[3] 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];