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

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

Например, рассмотрите матричный A 4 на 4:

A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
A = 4×4

     1     2     3     4
     5     6     7     8
     9    10    11    12
    13    14    15    16

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

A(4,2)
ans = 14

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

A(8)
ans = 14

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

При попытке обратиться к элементам вне массива на правой стороне оператора присваивания, MATLAB выдает ошибку.

test = A(4,5)

Index in position 2 exceeds array bounds (must not exceed 4).

Однако на левой стороне оператора присваивания, можно указать элементы вне текущих размерностей. Размер массива увеличивается, чтобы вместить новые элементы.

A(4,5) = 17
A = 4×5

     1     2     3     4     0
     5     6     7     8     0
     9    10    11    12     0
    13    14    15    16    17

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

A(1:3,2)
ans = 3×1

     2
     6
    10

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

A(3,:)
ans = 1×5

     9    10    11    12     0

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

B = 0:10:100
B = 1×11

     0    10    20    30    40    50    60    70    80    90   100

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