Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Matlab BSU.doc
Скачиваний:
11
Добавлен:
08.09.2019
Размер:
1.04 Mб
Скачать

Структура файлов сценариев.

Файл-сценарий (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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]