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

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

Например, рассмотрите магический квадрат A 4 на 4:

A = magic(4)
A = 4×4

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

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

A(4,2)
ans = 14

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

A(8)
ans = 14

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

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

test = A(4,5)

Index exceeds matrix dimensions.

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

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

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

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

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

     2
    11
     7

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

A(3,:)
ans = 1×5

     9     7     6    12     0

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

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

     0    10    20    30    40    50    60    70    80    90   100

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

Была ли эта тема полезной?