Suppose I have a vector X of size N, then how can I transform it to an array of size N with each element of the array being a vector of size 1?

```
before : vector[N] X
after : vector[1] X[N]
```

Thank You

Suppose I have a vector X of size N, then how can I transform it to an array of size N with each element of the array being a vector of size 1?

```
before : vector[N] X
after : vector[1] X[N]
```

Thank You

Before answering, just fyi unless you have some very specific need for this structure the `vector[1] X[N]`

is going to be slow compared to `vector[N]`

. The `vector[N] X`

in C++ is a contiguous array (An `Eigen::VectorXd`

) with some nice stuff around it, while a `vector[1] X[N]`

is an array of arrays (`std::vector<Eigen::VectorXd>`

) where all that nice stuff before is multiplied in size by N making it not so nice. Is there a reason you can’t use `vector[N]`

?

Would just a for loop work for you like the below?

```
data {
int N;
vector[N] X;
}
transformed data {
vector[1] X_vec[N];
for (i in 1:N) {
X_vec[i][1] = X[i];
}
}
```

1 Like

Thanks @stevebronder

I am actually trying to map a function to a vector of dimension N, but unfortunately this vector is a parameter.

In the map_rect example, the argument `vector[] thetas`

is the only way we could provide job specific parameters, hence the question.

This is the third thread you are asking the very same question for something trivial.

Sorry, but to me asking 3 times the same thing does not help, but falls in the category of unwanted messages. We have people looking around to make sure that things get answered.