Main Content

reshape

Reshape array

Description

example

B= reshape(A,sz)reshapesAusing the size vector,sz, to definesize(B). For example,reshape(A,[2,3])reshapesAinto a 2-by-3 matrix.szmust contain at least 2 elements, andprod(sz)must be the same asnumel(A).

example

B= reshape(A,sz1,...,szN)reshapesAinto asz1-by-...-by-szNarray wheresz1,...,szNindicates the size of each dimension. You can specify a single dimension size of[]to have the dimension size automatically calculated, such that the number of elements inBmatches the number of elements inA. For example, ifAis a 10-by-10 matrix, thenreshape(A,2,2,[])reshapes the 100 elements ofA成2 2-25 array.

Examples

collapse all

Reshape a 1-by-10 vector into a 5-by-2 matrix.

A = 1:10; B = reshape(A,[5,2])
B =5×21 6 2 7 3 8 4 9 5 10

Reshape a 4-by-4 square matrix into a matrix that has 2 columns. Specify[]for the first dimension to letreshapeautomatically calculate the appropriate number of rows.

A = magic(4)
A =4×416 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
B = reshape(A,[],2)
B =8×216 3 5 10 9 6 4 15 2 13 11 8 7 12 14 1

The result is an 8-by-2 matrix, which maintains the same number of elements as the original matrix. The elements inBalso maintain their columnwise order fromA.

Reshape a 3-by-2-by-3 array of zeros into a 9-by-2 matrix.

A = zeros(3,2,3); B = reshape(A,9,2)
B =9×20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Input Arguments

collapse all

Input array, specified as a vector, matrix, or multidimensional array.

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64|logical|char|string|cell|struct|datetime|duration|calendarDuration
Complex Number Support:Yes

Output size, specified as a row vector of integers. Each element ofszindicates the size of the corresponding dimension inB. You must specifyszso that the number of elements inAandBare the same. That is,prod(sz)must be the same asnumel(A).

Beyond the second dimension, the output,B, does not reflect trailing dimensions with a size of1. For example,reshape(A,[3,2,1,1])produces a 3-by-2 matrix.

Example:reshape(A,[3,2])

Example:reshape(A,[6,4,10])

Example:reshape(A,[5,5,5,5])

Size of each dimension, specified as two or more integers with at most one[](optional). You must specify at least 2 dimension sizes, and at most one dimension size can be specified as[], which automatically calculates the size of that dimension to ensure thatnumel(B)matchesnumel(A). When you use[]to automatically calculate a dimension size, the dimensions that youdoexplicitly specify must divide evenly into the number of elements in the input matrix,numel(A).

Beyond the second dimension, the output,B, does not reflect trailing dimensions with a size of1. For example,reshape(A,3,2,1,1)produces a 3-by-2 matrix.

Example:reshape(A,3,2)

Example:reshape(A,6,[],10)

Example:reshape(A,2,5,3,[])

Example:reshape(A,5,5,5,5)

Output Arguments

collapse all

Reshaped array, returned as a vector, matrix, multidimensional array, or cell array. The data type and number of elements inBare the same as the data type and number of elements inA. The elements inBpreserve their columnwise ordering fromA.

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64|logical|char|string|cell|datetime|duration|calendarDuration

Extended Capabilities

HDL Code Generation
Generate Verilog and VHDL code for FPGA and ASIC designs using HDL Coder™.

Version History

Introduced before R2006a