Обращение к элементам матрицы

Пусть задана матрица 4x3:

a = [1 2 3;
     4 5 6;
     7 8 9;
     10 1 12];

Элемент во второй строке, третьем столбце

>> a(3,2)

ans =
     8

Весь второй столбец (оператор :)

>> a(:,2)

ans =
     2
     5
     8
     1

Вся третья строка

>> a(3,:)

ans =
     7     8     9

К элементу прямоугольной матрицы можно обратиться при помощи одного индекса

>> a(6)

ans =
     5

В этом случае используется сквозная нумерация элементов в столбцах.

Блок матрицы

>> a(2:3,1:2)

ans =
     4     5
     7     8

Строки 2 и 4, столбцы 1 и 4

>> a([2,4],[1,3])

ans =
     4     6
    10    12

Все элементы матрицы одним столбцом (столбцы склеиваются друг за другом)

>> a(:)

ans =
     1
     4
     7
    10
     2
     5
     8
     1
     3
     6
     9
    12

Заменить все элементы в 3 строке нулями

>> a(3,:) = 0

a =
     1     2     3
     4     5     6
     0     0     0
    10     1    12

Логическое индексирование

Создадим последовательность

>> a = 1:10

a =
     1     2     3     4     5     6     7     8     9    10

Результатом сравнения массива a с некоторым числом является логический массив единиц и нулей той же размерности, что и исходный массив, элементы которого заменяются на 1 (ИСТИНА) или 0 (ЛОЖЬ) в зависимости от результата сравнения этого элемента со сравниваемым значение (в примере ниже это число 3):

>> a > 3

ans =
  1×10 logical array  
   0   0   0   1   1   1   1   1   1   1

Меньше или равно 3

>> a <= 3

ans =
  1×10 logical array
   1   1   1   0   0   0   0   0   0   0

Логическое индексирование можно использовать для выборки значений из матрицы, например, чтобы извлечь из матрицы a все значения, которые меньше 3 и больше 8 можно написать так

>> a(a < 3 | a > 8)

ans =
     1     2     9    10

© 2023. All rights reserved.

Powered by Hydejack v9.1.6