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.
Продолжение следует.