Курс Matlab. Часть 1 — Матричные операции

Matlab — пакет прикладных программ для проведения вычислений и одноименный язык программирования. Изначально эта программа развивалась именно как ПО для работы с матрицами (облегчения машинного решения матричных уравнений) — Matrix Laboratory.

Что нужно знать новичку.

Как задать матрицу в матлаб?

>> a = [2 1 3; 0 2 6; 9 7 8]

a =

     2     1     3
     0     2     6
     9     7     8

Указанная команда объявляет матрицу 3 на 3. Матрица (массив — матрица с одной строкой) объявляется при помощи квадратных скобок, строки разделяются точкой с запятой.

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

>> a = [2 1 3; 0 2 6; 9 7 8];

Для сложения, вычитания матриц используют + и —
Для поэлементного сложения .+
поэлементного умножения .* и т.д.

Как умножить (разделить) матрици?

Умножать матрици очень просто. Для это воспользуйтесь обычным оператором *

>> a = [1 2; 3 4]

a =

     1     2
     3     4

>> b = [5 6; 7 8]

b =

     5     6
     7     8

>> a * b

ans =

    19    22
    43    50

Для работы с матрицами предусмотрены операции левого и правого деления (ведь в случае матриц от перемены мест многое меняется).

Для деления матриц вы можете использовать слэши или же умножение матриц:

A\B = inv(A) * B;
A/B = A * inv(B);

Пример для матриц объявленных выше:

>> a \ b

ans =

    -3    -4
     4     5

>> a / b

ans =

    3.0000   -2.0000
    2.0000   -1.0000

Логические операции для матриц

В матлаб есть возможность использовать логические операции для матриц. При этом все что не ноль — true.
Оперция или:
Обозначается вертикальной чертой или or(a,b)

>> a = [0 1; 0 2]

a =

     0     1
     0     2

>> b = [9 0; 0 19]

b =

     9     0
     0    19

>> a | b

ans =

     1     1
     0     1

Операция И:
Обозначается амперсандом или функцией and(a,b)

>> a & b

ans =

     0     0
     0     1

Инверсия:

>> not(a)

ans =

     1     0
     1     0

Исключающее ИЛИ:

>> xor(a,b)

ans =

     1     1
     0     0

Как найти элементы в массиве?

Поиск элементов по условию:

>> c = [3 2 -1 0 6];
>> ch=find(c<=2)

ch =

     1     2     5

Выведены номера элементов. Т.е. первый, второй и пятый больше или равны двум.
Напомню, что массивы в матлаб нумеруются с единицы.

Как же получить элементы по номерам?

>> ca=c(ch)

ca =

     3     2     6

Проверка массивов на соответствие условию.

Если хотя бы один элемент удовлетворяет условию — возвращена будет единица.

>> c1 = any(c<=5)

c1 =

     1

Все элементы удовлетворяют условию:

>> c2 = all(c>7)

c2 =

     1

Обращение к участкам матрицы

Выбираем строки со второй по третью, столбцы — с первого по третий.

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

a =

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

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

ans =

     5     6     7
     9    10    11

Как объединить матрицы?

>> a = [1 2 3]

a =

     1     2     3

>> b = [4 5 6]

b =

     4     5     6

>> c = [a b]

c =

     1     2     3     4     5     6

Часть 2.

Продолжение следует.

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий