在 Julia 中操作矩阵
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)