- •Введение
- •Командное окно
- •Редактирование командной строки.
- •Длинные командные строки.
- •Вывод на печать командного окна.
- •Запуск внешних программ.
- •!Notepad
- •Команда format.
- •Выражения
- •Переменные.
- •Inf бесконечность
- •Операторы.
- •Функции.
- •Текстовые комментарии и символьные константы.
- •Операции с рабочей областью
- •Операции с файлами
- •Дневник командного окна
- •Операции с векторами и матрицами
- •Оператор «двоеточие».
- •Векторные индексы.
- •Удаление строк и столбцов.
- •Объединение матриц.
- •Транспонирование матриц.
- •Создание матриц с заданными свойствами.
- •Создание вектора равноотстоящих точек.
- •Создание вектора равноотстоящих точек в логарифмическом масштабе.
- •Разреженные матрицы.
- •Графика
- •Команда plot.
- •Графические объекты.
- •Окна изображений.
- •Добавление кривых на существующий график.
- •Управление осями.
- •Разбиение графического окна.
- •Подписи к осям и заголовки.
- •Графики в полярной системе координат.
- •Контурные графики и графики полей градиентов.
- •Создание массивов данных для трехмерной графики.
- •Построение графиков трехмерных поверхностей.
- •Программирование в системе matlab.
- •Основные типы данных.
- •Арифметические операторы и массивы.
- •Операторы отношения.
- •Логические операторы и функции.
- •Приоритет выполнения операторов.
- •Структура файлов сценариев.
- •Структура m-файлов функций.
- •Использование подфункций.
- •Операторная функция.
- •Передача данных через глобальные переменные.
- •Параметры функционального типа.
- •Функции с переменным числом аргументов.
- •Управление потоками.
- •If expression1
- •Диалоговый ввод.
- •Численные методы и обработка данных
- •Решение систем линейных алгебраических уравнений.
- •Решение систем линейных уравнений итерационными методами.
- •Обратная матрица и определитель.
- •Факторизация Холецкого.
- •Lu факторизация.
- •Qr факторизация.
- •Матричная экспонента.
- •Собственные значения и собственные вектора.
- •Нормальная форма Жордана.
- •Разложение Шура.
- •Сингулярное разложение.
- •Численное интегрирование.
- •Представление полиномов в среде matlab.
- •Умножение и деление многочленов.
- •Вычисление производной от многочлена.
- •Решение систем нелинейных уравнений.
- •Преобразование Фурье.
- •Xlabel('time (seconds)')
- •Решение обыкновенных дифференциальных уравнений.
- •Численное решение дифференциальных уравнений в частных производных.
- •Литература
Структура файлов сценариев.
Файл-сценарий (script) – это m-файл в котором записана серия команд без входных и выходных параметров. Файлы-сценарии работают с данными из рабочей области и в процессе выполнения не компилируются. Хотя сценарии не возвращают значений, все переменные, которые они создают, остаются в рабочем пространстве для дальнейшего использования. Каждый сценарий имеет следующую структуру:
%Основной комментарий
%Дополнительный комментарий
Тело файла с любыми выражениями
Основным комментарием является первая строка текстовых комментариев, а дополнительным – последующие строки. Основной комментарий выводится при выполнении команд lookfor и help имя_каталога. Полный комментарий выводится при выполнении команды help имя_файла.
Рассмотрим пример построения файла-сценария. Откроем окно Редактора/Отладчика щелчком по кнопке “New M-File” на панели инструментов и введем текст сценария:
%Polar plot
%Строит график функции y= 2*sin(5*x)^2
x = -pi:0.01:pi;
polar(x, 2*sin(5*x).^2)
Сохраним файл под именем pl. После сохранения в текущем каталоге будет
создан файл pl.m. Командой type pl можно вывести листинг файла, а командой pl запустить его на выполнение.
Структура m-файлов функций.
M-файл функция является полноценным модулем, поскольку содержит входные и выходные параметры и использует аппарат локальных переменных. Структура модуля имеет следующий вид:
function [var1,var2,…] = f_name(Список параметров)
%Основной комментарий
%Дополнительный комментарий
Тело файла
var1=…
var2=…
….
Файл-функция всегда начинается с объявления function, за которым следует один или несколько идентификаторов выходных параметров, имя функции и список ее входных параметров. Входные параметры указываются в квадратных скобках. Если входной параметр один, то скобки можно опустить. Все переменные, имеющиеся в модуле функции, являются локальными, то есть, доступны только в пределах данной функции. Связь с другими модулями проходит через входные и выходные параметры. При вызове функции происходит замена формальных параметров фактическими параметрами. Рассмотрим в качестве примера функцию, которая вычисляет значение n! (факториал числа n):
function f = fact(n) % Function definition line
% FACT Factorial. % Основной комментарий
% FACT(N) факториал числа N, % Дополнительный комментарий
% обычное обозначение N!
% Ввод команды FACT(N) эквивалентен PROD(1:N).
f = prod(1:n); % Тело функции
Сохранив функцию в m-файле, ее всегда можно вызвать из командной строки или из другой функции. Например:
fact(3)
ans =
6
Использование подфункций.
Подфункции объявляются и записываются в теле основных функций и имеют аналогичную структуру. Подфункции доступны только в пределах m-файла, определяющего основную (primary) функцию. Рассмотрим код функции newstats с двумя подфункциями mean и median для вычисления среднего значения и медианы статистической выборки:
function [avg, med] = newstats(u) % Primary function
% NEWSTATS Find mean and median with internal functions.
n = length(u);
avg = mean(u, n);
med = median(u, n);
function a = mean(v, n) % Subfunction
% Calculate average.
a = sum(v)/n;
function m = median(v, n) % Subfunction
% Calculate median.
w = sort(v);
if rem(n, 2) == 1
m = w((n+1)/2);
else
m = (w(n/2)+w(n/2+1))/2;
end
Возьмем в качестве выборки вектор v с пятью элементами и найдем для него среднее значение и медиану:
v=[1 2 3 8 9];
[a, m] = newstats(v)
a =
4.6000
m =
3