Документация 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