# vec2mat

(Not recommended) Change dimension

`vec2mat` is not recommended. Use `reshape` instead. For more information, see Compatibility Considerations.

## Syntax

``mat = vec2mat(vec,matcol)``
``mat = vec2mat(vec,matcol,padding)``
``[mat,padded] = vec2mat(___)``

## Description

````mat = vec2mat(vec,matcol)` converts vector `vec` to matrix `mat` with `matcol` columns. The function creates the matrix one row at a time, filling the rows with elements from `vec` in order. If the length of `vec` is not a multiple of `matcol`, then the function pads the last row of `mat` with zeros until the row contains `matcol` elements.```
````mat = vec2mat(vec,matcol,padding)` specifies values for the function to use to pad the last row of `mat`. The function uses the value from `padding` in order.```

example

````[mat,padded] = vec2mat(___)` also returns `padded`, the number of padded elements in the last row of `mat`. You can specify any of the input argument combinations from previous syntaxes.```

## Examples

collapse all

This example uses shows you how to add padding, as needed, when converting a vector to matrix.

Create a vector that will be converted to a matrix and a vector to provide padding values.

```vec = [10;20;30;40;50]; padding = [1,2;3,4;5,6]; n = 4; ```

When using `vec2mat` to convert the vector to a matrix, the function determines needed padding.

```[mat4,numPadded4] = vec2mat(vec,n,padding) ```
```mat4 = 10 20 30 40 50 1 3 5 numPadded4 = 3```

When using `reshape` to convert the vector to a matrix, the needed padding must be computed and appended to the vector before converting the vector to a matrix.

```numPadded = mod(numel(vec),n); if numPadded > 0 numPadded = n - numPadded mat = reshape([vec.' padding(1:numPadded)], n, []).' else numPadded % No padding required mat = reshape(vec.', n, []).' end ```
```numPadded = 3 mat = 10 20 30 40 50 1 3 5 ```

## Input Arguments

collapse all

Input array, specified as a vector.

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64` | `logical`
Complex Number Support: Yes

Number of columns for the output matrix `mat`, specified as a positive integer. If the length of `vec` is not a multiple of `matcol`, then the function pads the last row of `mat` with zeros until the row contains `matcol` elements.

Data Types: `double`

Padding values for the last row of `mat`, specified as a vector or matrix. The `padding` input inherits the data type of the `vec` input. The function uses the values from `padding` in order. If `padding` has fewer elements than what the function needs to complete the last row of `mat`, then the function repeats the last element of `padding` until `mat` is full.

## Output Arguments

collapse all

Output array, returned as a matrix with elements from `vec` and having `matcol` columns. The output inherits the data type of the input. The number of rows is equal to `ceil(length(vec)/matcol)`.

Number of padded elements in the last row of `mat`, returned as a positive integer.

## Version History

Introduced before R2006a

expand all