Skip to content
Related Articles
Manipulating matrices in Julia
• Last Updated : 22 Apr, 2020

Matrices in Julia are the heterogeneous type of containers and hence, they can hold elements of any data type. It is not mandatory to define the data type of a matrix before assigning the elements to the matrix. Julia automatically decides the data type of the matrix by analyzing the values assigned to it. Because of the ordered nature of a matrix, it makes it easier to perform operations on its values based on their index.

Following are some common matrix manipulation operations in Julia:

• Transpose of a matrix
• Flipping a matrix
• Concatenating matrices
• Reshaping a matrix
• Inverse of a matrix

#### Creating a matrix

Julia provides a very simple notation to create matrices. A matrix can be created using the following notation: A = [1 2 3; 4 5 6]. Spaces separate entries in a row and semicolons separate rows. We can also get the size of a matrix using size(A). #### Transpose of a matrix • The transpose operation flips the matrix over its diagonal by switching the rows and columns.
• Let A be a matrix. We can get the transpose of A by using A’.

Example 1:

 `# Defining a square matrix of size (2, 2)``A ``=` `[``1` `2``; ``3` `4``]    `` ` `# Transpose of A ``A'               `

Output: Example 2:

 `# Defining a retangular matrix of size (2, 3)``B ``=` `[``1` `2` `3``; ``4` `5` `6``]   `` ` `# Transpose of B``B'                   `

Output: #### Flipping a matrix: • A matrix in Julia can be flipped via the X-axis i.e. horizontally or via the Y-axis i.e. vertically.
• To flip the matrix we use `reverse(< matrix >, dims= < 1 or 2 >))` 1 = vertically, 2 = horizontally.

Example 1: Flipping vertically

 `# Defining a rectangular matrix of size (2, 3)``B ``=` `[``1` `2` `3``; ``4` `5` `6``]    `` ` `# Flipping the matrix vertically``reverse(B, dims ``=` `1``)   `

Output: Example 2: Flipping horizontally

 `# Flipping the matrix horizontally``reverse(B, dims ``=` `2``)   ` #### Concatenating matrices • In Julia we can concatenate a matrix to another matrix to the right side of the initial matrix or to the bottom of it.
• We use `vcat(A, B)` to concatenate to the side.
• And `hcat(A, B)` to concatenate to the bottom.
• While concatenating to the side, we need to make sure that both the matrices have same number of rows.
• While concatenating to the bottom, we need to make sure that both the matrices have same number of columns.

Example 1: Concatenate to the side

 `# Creating a square matrix of size (2, 2)``A ``=` `[``1` `2``; ``3` `4``]        `` ` `# Creating a rectangular matrix of size (2, 3)``B ``=` `[``5` `6` `7``; ``8` `9` `10``]   ``hcat(A, B)` Example 2: Concatenate to the bottom

 `# Creating a square matrix of size (3, 2)``A ``=` `[``1` `2``;``3` `4``; ``5` `6``]        `` ` `# Creating a rectangular matrix of size (4, 2)``B ``=` `[``5` `7``;``8` `9``; ``10` `11``;``14` `16``]   ``vcat(A, B)` #### Reshaping a matrix We can reshape a matrix into another matrix of different size.
Example 1: Reshaping a matrix

 `# The original matrix with size (3, 2)``A ``=` `[``1` `2``; ``3` `4``; ``5` `6``]    `
• Output: Reshaping the matrix to size (2, 3)

 `reshape(A, (``2``, ``3``))`

Output: Reshaping the matrix to size (6, 1)

 `reshape(A, (``6``, ``1``))` Reshaping the matrix to size (1, 6)

 `reshape(A, (``1``, ``6``))`

Output: #### Inverse of a matrix • If A is a square matrix its multiplicative inverse is called its inverse matrix. Denoted by A-1.
• In Julia we use `inv(A)` to get the inverse of the matrix A.

Example 1: Getting the Inverse of a matrix

 `# Creating a square matrix of size (2, 2)``A ``=` `[``4` `7``; ``2` `6``]      `` ` `# Getting the inverse of matrix A  ``inv(A)               ` Example 2: Getting Identity Matrix

 `# Creating a square matrix of size (2, 2)``A ``=` `[``4` `7``; ``2` `6``]     `` ` `# Getting the Identity matrix``A ``*` `inv(A)         ` My Personal Notes arrow_drop_up