Main Content

vertcat

Concatenate arrays vertically

Description

C = vertcat(A,B) concatenates B vertically to the end of A when A and B have compatible sizes (the lengths of the dimensions match except in the first dimension).

example

C = vertcat(A1,A2,…,An) concatenates A1, A2, … , An vertically.

vertcat is equivalent to using square brackets to vertically concatenate or append arrays. For example, [A; B] is the same as vertcat(A,B) when A and B are compatible arrays.

example

Examples

collapse all

Concatenate two matrices vertically.

Create two matrices, and vertically append the second matrix to the first by using square bracket notation.

A = [1 2 3; 4 5 6]
A = 2×3

     1     2     3
     4     5     6

B = [7 8 9]
B = 1×3

     7     8     9

C = [A; B]
C = 3×3

     1     2     3
     4     5     6
     7     8     9

Now, vertically append the second matrix to the first by using vertcat.

D = vertcat(A,B)
D = 3×3

     1     2     3
     4     5     6
     7     8     9

Create a table A with three rows and five variables.

A = table([5;6;5],['M';'M';'M'],[45;41;40],[45;32;34],{'NY';'CA';'MA'},...
    'VariableNames',{'Age' 'Gender' 'Height' 'Weight' 'Birthplace'},...
    'RowNames',{'Thomas' 'Gordon' 'Percy'})
A=3×5 table
              Age    Gender    Height    Weight    Birthplace
              ___    ______    ______    ______    __________

    Thomas     5       M         45        45        {'NY'}  
    Gordon     6       M         41        32        {'CA'}  
    Percy      5       M         40        34        {'MA'}  

Create a table B with the same variables as A except for order.

B = table(['F';'M';'F'],[6;6;5],{'AZ';'NH';'CO'},[31;42;33],[39;43;40],...
    'VariableNames',{'Gender' 'Age' 'Birthplace' 'Weight' 'Height'})
B=3×5 table
    Gender    Age    Birthplace    Weight    Height
    ______    ___    __________    ______    ______

      F        6       {'AZ'}        31        39  
      M        6       {'NH'}        42        43  
      F        5       {'CO'}        33        40  

Vertically concatenate tables A and B. The variables of C are in the same order as the variables of A and default row names are used for the rows from B.

C = vertcat(A,B)
C=6×5 table
              Age    Gender    Height    Weight    Birthplace
              ___    ______    ______    ______    __________

    Thomas     5       M         45        45        {'NY'}  
    Gordon     6       M         41        32        {'CA'}  
    Percy      5       M         40        34        {'MA'}  
    Row4       6       F         39        31        {'AZ'}  
    Row5       6       M         43        42        {'NH'}  
    Row6       5       F         40        33        {'CO'}  

Concatenate a date character vector, a string date, and a datetime into a single column of dates. The result is a datetime column vector.

chardate = '2016-03-24';
strdate = "2016-04-19";
t = datetime('2016-05-10','InputFormat','yyyy-MM-dd');
C = vertcat(chardate,strdate,t)
C = 3x1 datetime
   24-Mar-2016
   19-Apr-2016
   10-May-2016

Concatenate three string arrays into a single array.

A1 = ["str1" "str2"];
A2 = ["str3" "str4"];
A3 = ["str5" "str6"];
C = vertcat(A1,A2,A3)
C = 3x2 string
    "str1"    "str2"
    "str3"    "str4"
    "str5"    "str6"

Create a cell array containing two matrices. Vertically concatenate the matrices from the cell array into one matrix.

M1 = [1 2; 3 4];
M2 = [5 6; 7 8];
A1 = {M1,M2};
C = vertcat(A1{:})
C = 4×2

     1     2
     3     4
     5     6
     7     8

Input Arguments

collapse all

First input, specified as a scalar, vector, matrix, multidimensional array, table, or timetable.

Second input, specified as a scalar, vector, matrix, multidimensional array, table, or timetable.

  • The elements of B are concatenated to the end of the first input along the first dimension. The sizes of the input arguments must be compatible. For example, if the first input is a matrix of size 3-by-2, then B must have 2 columns.

  • All table inputs must have unique row names. If some of the table inputs do not have row names, vertcat fills in default row names for the output. Variable names in each table input must be the same, but the variables can be in a different order. vertcat concatenates by matching variable names. For table inputs, vertcat also concatenates RowNames property values. Other property values of the output table are assigned using the first nonempty (or nondefault) property values of the corresponding inputs.

  • Row times of timetable inputs do not need to be unique. Variable names in each timetable input must be the same, but the variables can be in a different order. vertcat concatenates by matching variable names. For timetable inputs, vertcat also concatenates RowTimes property values and events that are attached to the inputs. Other property values of the output timetable are assigned using the first nonempty (or nondefault) property values of the corresponding inputs.

  • You can concatenate valid combinations of different types. For more information about concatenating character arrays, logical arrays, and numeric types, see Valid Combinations of Unlike Classes.

List of inputs, specified as a comma-separated list of elements to concatenate in the order they are specified.

  • The inputs must have compatible sizes. For example, if A1 is a row vector of length m, then the remaining inputs must each have m columns to concatenate vertically.

  • All table inputs must have unique row names. If some of the table inputs do not have row names, vertcat fills in default row names for the output. Variable names in each table input must be the same, but the variables can be in a different order. vertcat concatenates by matching variable names. For table inputs, vertcat also concatenates RowNames property values. Other property values of the output table are assigned using the first nonempty (or nondefault) property values of the corresponding inputs.

  • Row times of timetable inputs do not need to be unique. Variable names in each timetable input must be the same, but the variables can be in a different order. vertcat concatenates by matching variable names. For timetable inputs, vertcat also concatenates RowTimes property values and events that are attached to the inputs. Other property values of the output timetable are assigned using the first nonempty (or nondefault) property values of the corresponding inputs.

  • You can concatenate valid combinations of different types. For more information about concatenating character arrays, logical arrays, and numeric types, see Valid Combinations of Unlike Classes.

Algorithms

When concatenating an empty array to a nonempty array, vertcat omits the empty array in the output. For example, vertcat([1; 2],[]) returns the column vector [1; 2].

If all input arguments are empty and have compatible sizes, then vertcat returns an empty array whose size is equal to the output size as when the inputs are nonempty. For example, vertcat(zeros(1,0),zeros(2,0)) returns a 3-by-0 empty array. If the input sizes are not compatible, then vertcat returns a 0-by-0 empty array.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced before R2006a