Документация Engee
Notebook

Индексация массивов

Индексация в языках программирования — это механизм для доступа к элементу массива данных посредством ссылки на массив и посредством одного или более выражений, значения которых определяют позицию компоненты массива. Индекс — номер элемента множества, который указывает на конкретный элемент массива. В данном примере будут продемонстрированы методы работы с индексами.

Создадим матрицу размерностью 4 на 4 к интексам которой будем обращаться:

In [ ]:
A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
Out[0]:
4×4 Matrix{Int64}:
  1   2   3   4
  5   6   7   8
  9  10  11  12
 13  14  15  16

Существует два способа сослаться на определенный элемент в массиве. Наиболее распространенным способом является указание индексов строк и столбцов:

In [ ]:
A[2, 2]
Out[0]:
6

Менее распространенным, но иногда полезным является использование одиночного индекса, который проходит вниз по каждому столбцу по порядку:

In [ ]:
println(A[1], " ", A[2], " ", A[3], " ", A[4], " ", A[5])
1 5 9 13 2

Использование одного индекса, для ссылки на определенный элемент в массиве, называется линейной индексацией.

Чтобы ссылаться на несколько элементов массива, используйте оператор двоеточия, который позволяет указать диапазон вида start:end. Например, перечислите элементы в первых трех строках и втором столбце массива:

In [ ]:
A[1:3, 2]
Out[0]:
3-element Vector{Int64}:
  2
  6
 10

Двоеточие, без начального или конечного значений, указывает все элементы в этом измерении. Например, отобразим все столбцы в третьей строке таблицы:

In [ ]:
A[3, :]
Out[0]:
4-element Vector{Int64}:
  9
 10
 11
 12

Оператор двоеточия также позволяет создать вектор значений с равными интервалами, используя более общую форму start:step:end:

In [ ]:
B = collect(0:10:100)
Out[0]:
11-element Vector{Int64}:
   0
  10
  20
  30
  40
  50
  60
  70
  80
  90
 100

Если опустить шаг, как в start:end, Julia будет использовать значение шага по умолчанию, равное 1:

In [ ]:
B = collect(0:100)
Out[0]:
101-element Vector{Int64}:
   0
   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
   ⋮
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100