Open In App

# Manipulating matrices in Julia

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)         ` 