📜  在 Julia 中操作矩阵

📅  最后修改于: 2021-11-25 04:38:45             🧑  作者: Mango

Julia 中的矩阵是异构类型的容器,因此它们可以保存任何数据类型的元素。在将元素分配给矩阵之前定义矩阵的数据类型不是强制性的。 Julia 通过分析分配给矩阵的值自动决定矩阵的数据类型。由于矩阵的有序性质,可以更轻松地根据其索引对其值执行操作。

以下是 Julia 中一些常见的矩阵操作:

  • 矩阵的转置
  • 翻转矩阵
  • 连接矩阵
  • 重塑矩阵
  • 矩阵的逆

创建矩阵

Julia 提供了一种非常简单的表示法来创建矩阵。可以使用以下符号创建矩阵: A = [1 2 3; 4 5 6] 。空格分隔一行中的条目,分号分隔行。我们还可以使用size(A)获得矩阵的大小。

矩阵的转置

  • 转置操作通过切换行和列来翻转矩阵的对角线。
  • A为矩阵。我们可以通过使用 A’来获得 A 的转置。

    示例 1:

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

    输出:

    示例 2:

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

    输出:

翻转矩阵:

  • Julia 中的矩阵可以通过 X 轴(即水平)或 Y 轴(即垂直)翻转。
  • 要翻转矩阵,我们使用reverse(< matrix >, dims= < 1 or 2 >)) 1 = 垂直,2 = 水平。

示例 1:垂直翻转

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

输出:

示例 2:水平翻转

# Flipping the matrix horizontally
reverse(B, dims = 2)   

连接矩阵

  • 在 Julia 中,我们可以将一个矩阵与另一个矩阵连接到初始矩阵的右侧或底部。
  • 我们使用vcat(A, B)连接到一边。
  • hcat(A, B)连接到底部。
  • 在连接到一边时,我们需要确保两个矩阵具有相同的行数。
  • 在连接到底部时,我们需要确保两个矩阵具有相同的列数。

示例 1:连接到一边

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

示例 2:连接到底部

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

重塑矩阵


我们可以将一个矩阵重塑为另一个不同大小的矩阵。
示例 1:重塑矩阵

# The original matrix with size (3, 2)
A = [1 2; 3 4; 5 6]    
  • 输出:

    将矩阵重塑为大小 (2, 3)

    reshape(A, (2, 3))
    

    输出:

    将矩阵重塑为大小 (6, 1)

    reshape(A, (6, 1))
    

    将矩阵重塑为大小 (1, 6)

    reshape(A, (1, 6))
    

    输出:

    矩阵的逆

    • 如果 A 是方阵,则其乘法逆称为逆矩阵。由A -1 表示.
    • 在 Julia 中,我们使用inv(A)来获得矩阵 A 的逆矩阵。

      示例 1:获取矩阵的逆

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

      示例 2:获取单位矩阵

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