: двоеточие используется для указания диапазона (интервала изменения величины) и в качестве знака групповой операции над элементами матриц;
() круглые скобки применяются для задания порядка выполнения математических операций, а также для указания аргументов функций и индексов матриц;
. точка отделяет дробную часть числа от целой его части, а также применяется в составе комбинированных знаков;
… три точки и более в конце строки отмечают продолжение выражения на следующей строке;
% знак процента обозначает начало комментария.
Большую матрицу можно определить поэлементно при помощи оператора цикла или набрать ее в обычном редакторе в виде ASCII-файла (например, data.ext), а затем считать при помощи команды
>>load data.ext
В результате матрица будет присвоена переменной data.
eye единичная матрица;
zeros нулевая матрица;
ones матрица из единиц;
rand случайная матрица со значениями из интервала [0,1];
hilb гильбертова матрица;
diag создание диагональной матрицы или выделение диагонали;
triu выделение верхней треугольной части матрицы;
tril выделение нижней треугольной части матрицы.
+,- символы плюс и минус обозначают знак числа или операцию сложения или вычитания матриц, причем матрицы должны быть одной размерности;
* знак умножения обозначает матричное умножение;
‘ апостроф обозначает операцию транспонирования (вместе с комплексным сопряжением);
/ левое деление;
\ правое деление;
^ оператор возведения в степень.
det вычисление определителя;
trace вычисление следа матрицы;
rank определение ранга матрицы;
norm вычисление нормы матрицы;
normest оценка нормы матрицы.
inv вычисление обратной матрицы;
pinv вычисление псевдообратной матрицы;
null определение ядра (нуль-пространства) матрицы;
orth вычисление ортонормированного базиса.
chol разложение Холецкого для симметричных, положительно-определенных матриц;
cholnc неполное разложение Холецкого (представление симметричной матрицы в виде произведения верхней треугольной и транспонированной матриц);
lu LU-разложение (для квадратных матриц);
hess приведение к форме Хессенберга;
rref приведение к треугольной форме;
qr QR-разложение (представление матрицы в виде произведения ортогональной и верхней треугольной матриц).
poly вычисление характеристического полинома для квадратной матрицы. В результате выполнения команды будут получены коэффициенты нормированного характеристического полинома a1, a2, ….,an:
det(pE – A)=pn +a1pn-1 +a2pn-2 + ….+ an;
polyeig вычисление собственных значений матричного полинома;
eig вычисление собственных чисел и векторов;
schur декомпозиция (разложение) Шура;
svd сингулярное разложение матрицы (SVD-разложение).
Для определения собственных значений и собственных векторов матрицы А служит команда
[U, D] = eig(A)
Здесь диагональная матрица D состоит из собственных чисел, а матрица U составлена из собственных векторов-столбцов матрицы А. Если в левой части указан единственный выходной параметр, то результатом будет выступать вектор-столбец собственных чисел eig(A).
Функция svd определяет сингулярное разложение матрицы. Сингулярное число s и соответствующие ему векторы u и v матрицы А удовлетворяют равенствам
Av = su, AТ u = sv.
Здесь AТ – транспонированная матрица, s – вещественное число. Образуем матрицу S, в которой расположены на диагонали сингулярные числа. Тогда AV = US, AТU = VS, и A = USVТ. Диагональ матрицы S состоит из положительных значений квадратных корней матрицы АТА. Если матрица А симметричная и положительно определенная, то сингулярные числа совпадают с собственными значениями матрицы А.
Вектор сингулярных чисел получается при обращении с одним выходным параметром S = svd(А)
Для выполнения сингулярного разложения заданной матрицы А служит команда
>>[U,S,V] = svd(A),
где U, V – соответственно, матрицы левых и правых сингулярных векторов, S – матрица сингулярных чисел.
Интегрирование MATLAB и Excel позволяет пользователю Excel обращаться к многочисленным функциям MATLAB для обработки данных, различных вычислений и визуализации результата. Надстройка excllink.xla реализует данное расширение возможностей Excel. Для связи MATLAB и Excel определены специальные функции.
Перед тем как настраивать Excel на совместную работу с MATLAB, следует убедиться, что Excel Link входит в установленную версию MATLAB. В подкаталоге exclink основного каталога MATLAB или подкаталога toolbox должен находиться файл с надстройкой excllink.xla. Запустите Excel и в меню Tools выберите пункт Add-ins. Откроется диалоговое окно, содержащее информацию о доступных в данный момент надстройках. Используя кнопку Browse, укажите путь к файлу excllink.xla. В списке надстроек диалогового окна появится строка Excel Link 2.0 for use with MatLab с установленным флагом. Нажмите OK, требуемая надстройка добавлена в Excel.
Обратите внимание, что в Excel теперь присутствует панель инструментов Excel Link, содержащая три кнопки: putmatrix, getmatrix, evalstring. Эти кнопки реализуют основные действия, требуемые для осуществления взаимосвязи между Excel и MATLAB— обмен матричными данными, и выполнение команд MATLAB из среды Excel. При повторных запусках Excel надстройка excllink.xla подключается автоматически.
Согласованная работа Excel и MATLAB требует еще нескольких установок, которые приняты в Excel по умолчанию (но могут быть изменены). В меню Tools перейдите к пункту Options, открывается диалоговое окно Options. Выберите вкладку General и убедитесь, что флаг R1C1 reference style выключен, т.е. ячейки нумеруются A1, A2 и т.д. На вкладке Edit должен быть установлен флаг Move selection after Enter.
Запустите Excel, проверьте, что проделаны все необходимые настройки так, как описано в предыдущем разделе (MATLAB должен быть закрыт). Введите в ячейки с A1 по C3 матрицу, для отделения десятичных знаков используйте точку в соответствии с требованиями Excel.
Рисунок 2 Пример ввода дробных чисел в Excel
Выделите на листе данные ячейки и нажмите кнопку putmatrix, появляется окно Excel с предупреждением о том, что MATLAB не запущен. Нажмите OK, дождитесь открытия MATLAB. Появляется диалоговое окно Excel со строкой ввода, предназначенной для определения имени переменной рабочей среды MATLAB, в которую следует экспортировать данные из выделенных ячеек Excel. Введите, к примеру, М и закройте окно при помощи кнопки OK. Перейдите к командному окну MATLAB и убедитесь, что в рабочей среде создалась переменная М, содержащая массив три на три:
Рисунок 3 Отображение массива М в командном окне.
Проделайте некоторые операции в MATLAB с матрицей М, например, обратите ее.
Вызов inv для обращения матрицы, как и любой другой команды MATLAB можно осуществить прямо из Excel. Нажатие на кнопку evalstring, расположенную на панели Excel Link, приводит к появлению диалогового окна, в строке ввода которого следует набрать команду MATLAB:
IM=inv(M)
Результат аналогичен полученному при выполнении команды в среде MATLAB.
Вернитесь в Excel, сделайте текущей ячейку A5 и нажмите кнопку getmatrix. Появляется диалоговое окно со строкой ввода, в которой требуется ввести имя переменной, импортируемой в Excel. В данном случае такой переменной является IM. Нажмите OK, в ячейки с A5 по A7 введены элементы обратной матрицы.
Итак, для экспорта матрицы в MATLAB следует выделить подходящие ячейки листа Excel, а для импорта достаточно указать одну ячейку, которая будет являться верхним левым элементом импортируемого массива. Остальные элементы запишутся в ячейки листа согласно размерам массива, переписывая содержащиеся в них данные, поэтому следует соблюдать осторожность при импорте массивов.
Вышеописанный подход является самым простым способом обмена информацией между приложениями — исходные данные содержатся в Excel, затем экспортируются в MATLAB, обрабатываются там некоторым образом и результат импортируется в Excel. Пользователь переносит данные при помощи кнопок панели инструментов Excel Link. Информация может быть представлена в виде матрицы, т.е. прямоугольной области рабочего листа. Ячейки, расположенные в строку или столбец, экспортируются, соответственно, в вектор-строки и вектор-столбцы MATLAB. Аналогично происходит и импорт вектор-строк и вектор-столбцов в Excel.
Работа из командной строки MATLAB затрудняется, если требуется вводить много команд и часто их изменять. Ведение дневника при помощи команды diary и сохранение рабочей среды незначительно облегчают работу. Самым удобным способом выполнения групп команд MATLAB является использование М-файлов, в которых можно набирать команды, выполнять их все сразу или частями, сохранять в файле и использовать в дальнейшем. Для работы с М-файлами предназначен редактор М-файлов. С его помощью можно создавать собственные функции и вызывать их, в том числе и из командного окна.
Откройте меню File основного окна MATLAB и в пункте New выберите подпункт M-file. Новый файл открывается в окне редактора M-файлов, которое изображено на рисунке 4.