
- •Введение
- •Командное окно
- •Редактирование командной строки.
- •Длинные командные строки.
- •Вывод на печать командного окна.
- •Запуск внешних программ.
- •!Notepad
- •Команда format.
- •Выражения
- •Переменные.
- •Inf бесконечность
- •Операторы.
- •Функции.
- •Текстовые комментарии и символьные константы.
- •Операции с рабочей областью
- •Операции с файлами
- •Дневник командного окна
- •Операции с векторами и матрицами
- •Оператор «двоеточие».
- •Векторные индексы.
- •Удаление строк и столбцов.
- •Объединение матриц.
- •Транспонирование матриц.
- •Создание матриц с заданными свойствами.
- •Создание вектора равноотстоящих точек.
- •Создание вектора равноотстоящих точек в логарифмическом масштабе.
- •Разреженные матрицы.
- •Графика
- •Команда plot.
- •Графические объекты.
- •Окна изображений.
- •Добавление кривых на существующий график.
- •Управление осями.
- •Разбиение графического окна.
- •Подписи к осям и заголовки.
- •Графики в полярной системе координат.
- •Контурные графики и графики полей градиентов.
- •Создание массивов данных для трехмерной графики.
- •Построение графиков трехмерных поверхностей.
- •Программирование в системе matlab.
- •Основные типы данных.
- •Арифметические операторы и массивы.
- •Операторы отношения.
- •Логические операторы и функции.
- •Приоритет выполнения операторов.
- •Структура файлов сценариев.
- •Структура m-файлов функций.
- •Использование подфункций.
- •Операторная функция.
- •Передача данных через глобальные переменные.
- •Параметры функционального типа.
- •Функции с переменным числом аргументов.
- •Управление потоками.
- •If expression1
- •Диалоговый ввод.
- •Численные методы и обработка данных
- •Решение систем линейных алгебраических уравнений.
- •Решение систем линейных уравнений итерационными методами.
- •Обратная матрица и определитель.
- •Факторизация Холецкого.
- •Lu факторизация.
- •Qr факторизация.
- •Матричная экспонента.
- •Собственные значения и собственные вектора.
- •Нормальная форма Жордана.
- •Разложение Шура.
- •Сингулярное разложение.
- •Численное интегрирование.
- •Представление полиномов в среде matlab.
- •Умножение и деление многочленов.
- •Вычисление производной от многочлена.
- •Решение систем нелинейных уравнений.
- •Преобразование Фурье.
- •Xlabel('time (seconds)')
- •Решение обыкновенных дифференциальных уравнений.
- •Численное решение дифференциальных уравнений в частных производных.
- •Литература
Операторная функция.
Операторная функция определяет функцию с помощью одного оператора. Результатом выполнения операторной функции является вычисленное значение выражения. Определения операторных функций должны предшествовать их вызову. К операторной функции можно обращаться только в том программном модуле, в котором она определена. Определение операторной функции имеет вид:
g = inline(expr)
g = inline(expr, arg1, arg2, ...)
g = inline(expr, n)
здесь expr – строковая константа, определяющая математическое выражение, arg1, arg2,... – список входных параметров, n – скаляр означает, что список формальных входных параметров состоит из x, P1, P2,…Pn. Рассмотрим пример:
g = inline('sin(alpha*x)', 'x', 'alpha')
g =
Inline function:
g(x, alpha) = sin(alpha*x)
g(3.149, 0.5)
ans =
1.0000
Передача данных через глобальные переменные.
Поскольку переменные в файлах-функциях являются локальными, то передача данных из модуля в модуль происходит только через входные и выходные параметры. Команда
global X Y Z
объявляет переменные X, Y, Z модуля-функции глобальными. Чтобы несколько программных модулей могли совместно использовать глобальную переменную, ее идентификатор должен быть объявлен как global во всех этих модулях.
Параметры функционального типа.
Часто во многих функциях возникает необходимость передачи им в качестве параметров имени других функций. Например, необходимо написать функцию для вычисления интеграла, когда вид подынтегральной функции заранее не известен. В таких случаях в MATLAB используют параметры функционального типа.
Описание переменной функционального типа имеет вид:
fhandle = @fname;
Здесь имя fname – функции, @fname – дескриптор (указатель) функции, fhandle – переменная функционального типа. Для определения значение функции с помощью ее функционального указателя можно использовать функцию feval, имеющую структуру:
feval(fhandle, arg1, arg2, ..., argn)
Рассмотрим пример:
s=@sin;
sin(1)
ans =
0.8415
feval(s, 1)
ans =
0.8415
Напишем
функцию для вычисления суммы
,
когда вид функции F(x)
заранее неизвестен.
function f=sm(fh)
f=0;
for i=1:10
f=f+feval(fh, i);
end;
Тогда для вычисления суммы, например функции sin(x), достаточно выполнить оператор:
sm(@sin)
ans =
1.4112
Функции с переменным числом аргументов.
При создании функций с переменным числом аргументов полезно использовать две функции:
nargin – возвращает число входных параметров данной функции
nargout – возвращает число выходных параметров данной функции
В качестве примера рассмотрим часть кода функции myplot с переменным числом аргументов:
function [x0, y0] = myplot(fname, lims, npts, angl, subdiv)
% MYPLOT График функции.
% MYPLOT(fname, lims, npts, angl, subdiv)
% Первые два аргумента обязательны,
% три других имеют значение по умолчанию.
...
if nargin < 5, subdiv = 20; end
if nargin < 4, angl = 10; end
if nargin < 3, npts = 25; end
...
if nargout == 0
plot(x, y)
else
x0 = x;
y0 = y;
end
Управление потоками.
MATLAB имеет пять видов структур управления потоками:
оператор if
оператор switch
циклы for
циклы while
оператор break
Оператор if имеет следующую структуру: