## Documentation Center |

Solvers accept matrix initial point `x0`, where
matrix means an array of any size. They also accept matrix bounds `lb` and `ub`.
Here's how solvers handle matrix arguments.

Internally, solvers convert matrix arguments into vectors before processing. For example,

`x0`becomes`x0(:)`. For an explanation of this syntax, see the`A(:)`entry in`colon`.For output, solvers reshape the solution

`x`to the same size as the input`x0`.When

`x0`is a matrix, solvers pass`x`as a matrix of the same size as`x0`to both the objective function and to any nonlinear constraint function.Linear constraints, though, take

`x`in vector form,`x(:)`. In other words, a linear constraint of the form`A*x ≤ b`or`Aeq*x = beq`takes

`x`as a vector, not a matrix. Ensure that your matrix`A`or`Aeq`has the same number of columns as`x0`has elements, or the solver will error.

Was this topic helpful?