Ключевым объектом во всех вычислительных алгоритмах MATLAB является матрица и частный случай матрицы – вектор. Как уже несколько раз упоминалось, синтаксис определения вектора очень простой – внутри квадратных скобок определяются начальное значение вектора, шаг изменения, конечное значение. При этом шаг изменения указывать не обязательно – по умолчанию он считается равным единице. Шаг изменения может быть даже отрицательным, и тогда начальное значение должно быть меньше конечного. Обратите внимание, что практически во всех языках программирования для определения вектора используется цикл, причём счётчик цикла может принимать только целочисленные значения, и для формирования некоторых векторов приходится писать сложные алгоритмы. В MATLAB формирование любого вектора занимает одну строчку программного кода. Один элемент вектора от другого в случае прямого их указания можно отделять или запятой или пробелом. В качестве элементов вектора могут выступать и комплексные числа, но генерировать комплексные векторы при помощи оператора двоеточия не получится. В приведенном ниже примере обратите внимание на последнее введенное выражение – попытка генерировать комплексный вектор привела к сообщению об ошибке, и в результате был получен вещественный вектор, а мнимая часть комплексного числа была просто проигнорирована.
По умолчанию все векторы становятся вектор-строками. Для преобразования их в вектор-столбец необходимо использовать операцию транспонирования. Благодаря тому, что массивы являются основой программирования MATLAB, транспонирование реализовано простым символом – апострофом. Определение его сразу после имени вектора приводит к преобразованию вектор-строки в вектор-столбец и наоборот. Для обращения к отдельному элементу вектора после его имени в круглых скобках нужно поставить номер элемента. Подобным же образом можно изменять значения отдельных элементов вектора.
Подобным образом в MATLAB генерируются и матрицы. Стоит только обратить внимание на то, что матрицы состоят из векторов. Матрицы задаются по строкам. Одна строка от другой отделяется символом точки с запятой.
Таблица 7. Наиболее важные функции для создания матриц стандартного вида | |
Название | Значение |
zeros | Матрица, заполненная нулями |
ones | Матрица, все элементы которой равны единице |
eye | Единичная матрица |
rand | Матрица, заполненная случайными числами |
В MATLAB существует большое число функций для генерации стандартных матриц. Любую функцию из этой таблицы можно вызвать как с одним аргументом, например zeros(n), так и с двумя – zeros(n,m). В первом случае будет создана квадратная матрица размерности n, во втором случае – прямоугольная матрица из n строк и m столбцов. Часто оказывается полезной функция diag(a), создающая диагональную матрицу, на главной диагонали которой расположены соответствующие элементы ветора a.