- •Введение
- •Командное окно
- •Редактирование командной строки.
- •Длинные командные строки.
- •Вывод на печать командного окна.
- •Запуск внешних программ.
- •!Notepad
- •Команда format.
- •Выражения
- •Переменные.
- •Inf бесконечность
- •Операторы.
- •Функции.
- •Текстовые комментарии и символьные константы.
- •Операции с рабочей областью
- •Операции с файлами
- •Дневник командного окна
- •Операции с векторами и матрицами
- •Оператор «двоеточие».
- •Векторные индексы.
- •Удаление строк и столбцов.
- •Объединение матриц.
- •Транспонирование матриц.
- •Создание матриц с заданными свойствами.
- •Создание вектора равноотстоящих точек.
- •Создание вектора равноотстоящих точек в логарифмическом масштабе.
- •Разреженные матрицы.
- •Графика
- •Команда plot.
- •Графические объекты.
- •Окна изображений.
- •Добавление кривых на существующий график.
- •Управление осями.
- •Разбиение графического окна.
- •Подписи к осям и заголовки.
- •Графики в полярной системе координат.
- •Контурные графики и графики полей градиентов.
- •Создание массивов данных для трехмерной графики.
- •Построение графиков трехмерных поверхностей.
- •Программирование в системе matlab.
- •Основные типы данных.
- •Арифметические операторы и массивы.
- •Операторы отношения.
- •Логические операторы и функции.
- •Приоритет выполнения операторов.
- •Структура файлов сценариев.
- •Структура m-файлов функций.
- •Использование подфункций.
- •Операторная функция.
- •Передача данных через глобальные переменные.
- •Параметры функционального типа.
- •Функции с переменным числом аргументов.
- •Управление потоками.
- •If expression1
- •Диалоговый ввод.
- •Численные методы и обработка данных
- •Решение систем линейных алгебраических уравнений.
- •Решение систем линейных уравнений итерационными методами.
- •Обратная матрица и определитель.
- •Факторизация Холецкого.
- •Lu факторизация.
- •Qr факторизация.
- •Матричная экспонента.
- •Собственные значения и собственные вектора.
- •Нормальная форма Жордана.
- •Разложение Шура.
- •Сингулярное разложение.
- •Численное интегрирование.
- •Представление полиномов в среде matlab.
- •Умножение и деление многочленов.
- •Вычисление производной от многочлена.
- •Решение систем нелинейных уравнений.
- •Преобразование Фурье.
- •Xlabel('time (seconds)')
- •Решение обыкновенных дифференциальных уравнений.
- •Численное решение дифференциальных уравнений в частных производных.
- •Литература
Операторы.
Выражения используют обычные арифметические операции и правила старшинства.
+ сложение
– вычитание
* умножение
/ деление
\ левое деление
^ степень
‘ комплексно-сопряженное транспонирование
() определение порядка вычисления
Полный список операторов можно получить, используя команду help ops.
Следует отметить, что многие операторы умеют работать с векторами и матрицами, т.е. являются матричными. Рассмотрим пример с экспонентой.
v=[1 2 3]; exp(v)
ans =
2.7183 7.3891 20.0855
Функции.
MATLAB предоставляет большое количество элементарных математических функций, таких как abs, sqrt, exp, sin и др. Вычисление квадратного корня или логарифма отрицательного числа не является ошибкой: в этом случае результатом является соответствующее комплексное число. MATLAB также предоставляет и более сложные
Функции, включая Гамма-функцию и функции Бесселя. Большинство из этих функций
имеют комплексные аргументы. Для вывода списка всех элементарных математических функций следует выполнить команду help elfun. Перечень более сложных математических и матричных функций можно получить по командам help specfun
и help elmat соответственно. Некоторые функции, такие как sqrt и sin, являются встроенными. Они являются частью MATLAB и очень эффективны, но код их реализации недоступен. Другие функции, такие как gamma и sinh, реализованы в М-файлах. Поэтому можно легко просмотреть их код и, при необходимости, модифицировать его.
Приведем несколько примеров использования выражений в MATLAB вместе с результатами выполнения:
rho = (1+sqrt(5))/2
rho =
1.6180
a = abs(3+4i)
a =
5
z = sqrt(besselk(4/3,rho-i))
z =
0.3730+ 0.3214i
huge = exp(log(realmax))
huge =
1.7977e+308
toobig = pi*huge
toobig =
Inf
Текстовые комментарии и символьные константы.
Текстовые комментарии вводятся с помощью символа %, например:
% magic(N) создает магический квадрат для всех N > 2.
Комментарии обычно используются для пояснения программного кода в m-файлах. Обычно первые строки m-файлов служат для описания их назначения, которое выводится на экран командой help имя_файла. Например, help magic.
Символьная константа – это цепочка символов, заключенных в апострофы, например:
‘текстовый комментарий’.
Операции с рабочей областью
Сеанс работы с MATLAB принято именовать сессией (session). Сессия отражает работу пользователя с системой. В ней имеются строки ввода-вывода и сообщения об ошибках. Переменные и определения новых функций в системе MATLAB хранятся в особой области памяти – рабочей области. MATLAB позволяет сохранять значения переменных в виде бинарных файлов с расширением mat с помощью команды save:
save filename – рабочая область сохраняется в файле filename.mat,
save filename x y – записываются только переменные x и y.
После параметров команды save можно указать ключи, уточняющие формат записи файлов:
–mat – двоичный формат, используемый по умолчанию;
–ascii – ASCII формат одинарной точности (8 цифр);
–ascii –double – ASCII формат двойной точности (16 цифр);
–append – добавление в существующий mat–файл.
При необходимости можно сохранить не только рабочую область, но и весь текст сессии со всеми сообщениями с помощью команды diary:
diary filename – запись на диск ввода-вывода в тестовый файл с именем filename,
diary off – приостанавливает запись в файл,
diary on – возобновляет запись в файл.
Для просмотра текстового файла в командном окне следует использовать команду type, например, type fname.txt.
Для загрузки сохраненной ранее рабочей области используется команда load с теми же ключами, что и у команды save. Операции с рабочей областью можно выполнять не только из командной строки, но и с помощью окна броузера рабочей области. Достаточно щелкнуть по нему правой кнопкой мыши и выбрать из контекстного меню требуемую команду. Например, для загрузки рабочей области выбираем из контекстного меню команду Import Data и из диалогового окна выбираем нужный m–файл.
MATLAB позволяет загружать переменные и массивы, записанные в двоичный файл из других приложений. Рассмотрим программный код из DELPHI, который записывает трехмерный массив действительных чисел в двоичный файл с именем t.dat.
FileHandle:=FileCreate(‘t.dat’);
for k:=1 to 21 do
for i:=1 to 21 do
for j:=1 to 21 do
FileWrite(FileHandle,T[i,j,k],SizeOf(double));
FileClose(FileHandle);
Для ввода записанных данных в рабочую область MATLAB достаточно выполнить команды:
fid=fopen('t.dat');
T=fread(fid,inf,'double');
fclose(fid);
T=reshape(T,21,21,21);
Следует отметить, что MATLAB имеет возможность импортировать данные из реляционных баз данных, а также экспортировать свои данные в таблицы баз данных.
Окно просмотра ресурсов позволяет просматривать существующие в памяти объекты, редактировать их содержимое и удалять из памяти. Для вывода содержимого объекта следует выделить его имя и щелкнуть на кнопке Open Selection. Объект можно открыть и двойным щелчком на его имени в списке. Откроется окно редактора массива (Array Editor). В этом окне надо щелкнуть на ячейке, содержимое которой следует отредактировать и ввести новое значение. Окно редактора позволяет также изменять размерность массивов и численный формат.
По мере задания одних переменных и стирания других рабочая область перестает быть непрерывной. Для избежания непроизводительных потерь памяти при работе с объемными данными следует использовать команду pack, осуществляющую дефрагментацию рабочей области.