суббота, 7 января 2017 г.

Euler. Матрицы

Базовый синтаксис для работы с матрицами в Euler не сильно отличается от такового в Matlab-подобных программах: в квадратных скобках перечисляются элементы матрицы. Числа вводятся построчно, разделяясь запятыми, в конце строки ставится точка с запятой. Если длины строк разные, недостающие элементы заполняются нулями. 

[1, 2; 3, 4, 5] -> [1, 2, 0; 3, 4, 5]


Сформировать вектор-строку можно с помощью выражения

a:h:b

где a и b - границы диапазона, h - шаг (по-умолчанию равен 1). 

Для доступа к элементу нужно указать его индекс в квадратных скобках. Индексация начинается с 1. Если один из индексов пропущен, будет возвращена вся строка (столбец). Использование двоеточия позволяет выделить подматрицу.

A = [1, 2, 3; 4, 5, 6; 7, 8, 9]
A[2,1] -> 4
A[3,] -> [7, 8, 9]
A[1:2, 1:3] -> [1, 2, 3; 4, 5, 6]

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

A[1:2, 1:3] = 0

Для горизонтальной конкатенации матриц используется операция '|', для вертикально - '_': A|B или A_B. Также, можно использовать более "классические" варианты [A,B] и [A;B]

Арифметические операции (а также операции сравнения) в применении к матрицам выполняются поэлементно. Для матричного произведения служит оператор - точка (A.B). Для вычисления обратной матрицы используется функция inv(A), другой вариант - возведение в обратную степень с помощью функции matrixpower(A,-1).  Единичная матрица генерируется с помощью id(n)

Подробнее познакомиться с матричными операциями можно на странице справки
01 - Matrix Language

Комментариев нет:

Отправить комментарий