Engee 文档
Notebook

矩阵和数组

Julia 编程语言为创建和编辑矩阵提供了多种可能性。本例将介绍其中的一些功能。

要创建一个由多行组成的矩阵,请用分号分割矩阵元素:

In [ ]:
a = [1 3 5; 2 4 6; 7 8 10]
Out[0]:
3×3 Matrix{Int64}:
 1  3   5
 2  4   6
 7  8  10

Julia 允许你使用单个算术运算符或函数处理矩阵中的所有值,只需在运算符或函数前指定一个点,这意味着运算符是逐个元素应用的:

In [ ]:
a .+ 10
Out[0]:
3×3 Matrix{Int64}:
 11  13  15
 12  14  16
 17  18  20

逐元素度展开

In [ ]:
a .^ 3
Out[0]:
3×3 Matrix{Int64}:
   1   27   125
   8   64   216
 343  512  1000

您还可以将函数应用于矩阵:

In [ ]:
sin(a)
Out[0]:
3×3 Matrix{Float64}:
 -0.657343  -0.275398   0.014688
 -0.572697  -0.24759   -0.144781
  0.254022  -0.38759   -0.874514

矩阵的转置有两种方法,第一种是指定撇号:

In [ ]:
a'
Out[0]:
3×3 adjoint(::Matrix{Int64}) with eltype Int64:
 1  2   7
 3  4   8
 5  6  10

第二种方法是使用 transpose 函数:

In [ ]:
transpose(a)
Out[0]:
3×3 transpose(::Matrix{Int64}) with eltype Int64:
 1  2   7
 3  4   8
 5  6  10

矩阵的连接是在方括号中指定的,带或不带分号分别表示纵向加法和横向加法:

In [ ]:
A = [a; a]
Out[0]:
6×3 Matrix{Int64}:
 1  3   5
 2  4   6
 7  8  10
 1  3   5
 2  4   6
 7  8  10

横向矩阵连接:

In [ ]:
A = [a a]
Out[0]:
3×6 Matrix{Int64}:
 1  3   5  1  3   5
 2  4   6  2  4   6
 7  8  10  7  8  10

您还可以通过 im 定义复数,将其用作数组元素:

In [ ]:
c = [3+4im 4+3im; -im 10im]
Out[0]:
2×2 Matrix{Complex{Int64}}:
 3+4im  4+3im
 0-1im  0+10im