Матрицы
Редактирование¶
Есть несколько способов вставить матрицу: через меню Вставка > Матрица..., сочетанием клавиш CTRL+M, с палитры Matrices (Matrix 3x3) или введя функцию mat(. Вы получите шаблон 3x3 либо диалоговое окно для указания числа строк и столбцов. Присвоим переменной A матрицу размерностью 3 (строки) x 3 (столбцы). Например, наберите A:, затем CTRL+M. Появится шаблон матрицы 3x3 с пустыми плейсхолдерами.

Если вы передумали насчёт размерности, её всегда можно изменить. Просто щёлкните внутри матрицы в правом нижнем углу. Появится чёрный квадрат с вертикальной и горизонтальной линией. Зажав левую кнопку мыши (указатель мыши изменит вид), перетащите и скорректируйте размерность. Это можно сделать, даже если плейсхолдеры не пустые.

Теперь заполним плейсхолдеры, как на следующем рисунке. Если навести указатель мыши на матрицу, появится всплывающая подсказка — это символьное представление матрицы. Как видно, вещественные числа представлены в виде дробей, а также присутствуют две неопределённые переменные (a и b, без числовых значений).

Использование: символьный режим против численного¶
Если присвоить значения переменным a и b до определения матрицы, результат будет таким:

Результат матрицы A можно представить символьно (оператор →) или численно (оператор =). Обратите внимание на разницу:

Извлечение элементов¶
Отдельный элемент матрицы также можно получить с помощью функции el. Наберите el(A, или A[. Вы увидите:

Присвоение значений элементам¶
Теперь можно вставить одно целое число (для вектора) или два целых числа (для матрицы), чтобы присвоить значение элементу вектора или матрицы. Здесь (для матрицы) наберите 3,1→ или 3,1= . Появится значение A в третьей строке и первом столбце (минимальный индекс строки и столбца — 1).

Векторы¶
SMath рассматривает матрицу-столбец как вектор. Элементам вектора нужен только один индекс. Вот пример (для матриц-строк по-прежнему нужны два индекса, первый из которых — 1).

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

Обратите внимание на использование функций row и col для извлечения отдельной строки или отдельного столбца.
SMath также поддерживает вложенные матрицы, то есть элемент матрицы сам может быть матрицей. Смотрите следующий пример.

Отдельные элементы представляются так же, как и раньше.

Матрицы в SMath — это динамические массивы, и они могут менять свою размерность. Например, функция matrix возвращает матрицу, заполненную нулями. Посмотрите, как получить то же самое, присвоив нулевое значение элементу z3 4.

Теперь попробуйте набрать, например, z5 5:=2
Помимо переменных-матриц и переменных-векторов, существуют также функции для работы с матрицами и векторами.

Функция f принимает один аргумент и возвращает вектор из трёх элементов. Аргументом может быть скаляр, вектор или матрица. Попробуйте сами. Функция ff ожидает вектор из двух элементов, а функция F ожидает два аргумента и возвращает матрицу 2x2. Поэкспериментируйте с ними.
При работе с матрицами, несмотря на обилие операторов и функций для матриц/векторов, рано или поздно потребуются циклы. Чаще всего используются одинарные, двойные или вложенные циклы for. Вот простой пример:

Можно инициализировать пустую матрицу фиксированной размерности с помощью matrix(rows,cols), указав один из двух аргументов равным 0.

Эта страница основана на статье из старой вики, автор — Davide Carpi.