Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1533.pdf
Скачиваний:
14
Добавлен:
07.01.2021
Размер:
1.28 Mб
Скачать

12. ПРОГРАММИРОВАНИЕ В СРЕДЕ MATLAB

12.1. M-файлы

амым удобным способом выполнения команд MATLAB является использование М-файлов, в которых можно набирать команды, выполнять их все сразу или частями, сохранять в файле и использовать в дальнейшем. Для работы с М-файлами предназначен редактор М-файлов. При помощи этого редактора можно создавать собствен-

ные функц

вызывать их, в том числе и из командной строки.

Для подготовки, редактирования и отладки М-файлов служит

С

 

многооконный редактор. Он выполнен как типичное

приложен Windows. Редактор можно вызвать командой edit из ко-

мандной строки

ли командой New – Script (Function) из меню File.

Выполнен M-файла: меню Debug – Save and Run (F5).

Открыт

существующего М-файла:

специальный

1)

меню File - Open ра очей среды либо редактора М-файлов.

2) команда MATLAB edit из командной строки, указав в каче-

стве аргумента имя файла, например:

>> edit mydemo

Типы М-файлов:

1)

файл-сценарии, не имеющие входных параметров;

2)

файл-функции, имеющие входные параметры.

 

бА

 

 

12.1.1. Файл-сценарий

Файл-сценарий называется также Script-файлом или просто

скриптом.

 

Файл-сценарий имеет весьмаДпростую структуру:

1. % основной комментарий, если необходимо.

2. % дополнительный комментарий, если необходимо.

3. Тело программы с любыми допустимыми выражениями.

Все переменные, объявленные в файл-программе, становятся

 

И

доступными в рабочей среде после ее выполнения. Переменные, определенные в одной файл-программе, можно использовать в других файл-программах и в командах, выполняемых из командной строки.

Выполнение команд, содержащихся в файл-сценарии:

1. Из редактора М-файлов так, как описано выше.

56

2. Из командной строки или другого файл-сценария, при этом в качестве команды используется имя М-файла.

12.1.2. Файл-функция

С

является аналогом подпрограммы типа

Файл-функция

function языков программирования.

Файл-функц я

меет входные параметры, список которых ука-

зывается в круглых скобках. Используемые в файл-функции переменные являются локальными переменными, изменение значений кото-

Теперь созданную функцию можно использовать так же, как и встроенные sin, cos и другие, например из командной строки:

рых в теле функц

 

н коим образом не влияет на значения, которые

те же самые переменные могут иметь за пределами функции. Т.е. ло-

кальные переменные могут иметь те же имена (идентификаторы), что

и глобальные переменные.

 

 

 

ром

Структура

М-файла функции с одним выходным парамет-

в д:

 

 

 

 

 

 

 

 

имеет

 

 

 

function var = f name (Список параметров)

 

% основной комментарий, если необходимо.

 

% дополнительный комментарий, если необходимо.

 

Тело программы с лю ыми выражениями.

 

var = выражение

 

 

 

 

бА

 

Пример

 

 

 

 

 

 

 

 

 

Предположим, что в вычислениях часто необходимо использо-

вать функцию e

x

 

 

x2 1

 

.

Д

 

 

x4 0,1

 

 

 

 

 

 

 

function f = myfun(x)

 

 

 

 

И

 

f= ехр(-х)*sqrt((х^2+1)/(х^4+0.1));

 

 

 

 

 

 

 

 

 

>> у =myfun(1.3) y =

0.2600

Вызов собственных функций может осуществляться из файлсценария и из другой файл-функции.

57

Каталог, в котором содержатся файл-функции, должен быть текущим, или путь к нему должен быть добавлен в пути поиска, иначе MATLAB просто не найдет функцию или вызовет вместо нее другую с тем же именем (если она находится в каталогах, доступных для поиска).

Файл-функция, приведенная в листинге, имеет один существенный недостаток. Попытка вычисления значений функции от массива привод т к ош бке, а не к массиву значений, как это происходит при

вычислен

встроенных функций.

Устран м этот недостаток:

function f = myfun(x)

С

f = ехр(-х).*sqrt((х.^2+1)./(х.^4+0.1));

Теперь аргументом функции myfun может быть как число, так и

вектор

матр ца значений, например:

Переменная у, в которую записывается результат вызова функции myfun, автоматически становится вектором нужного размера.

>> х = [1.3 7.2];

ли

>> у = myfun(x)

y =

 

 

0.2600

0.0001

 

бА

MATLAB предоставляет ещеДодну возможность работы с файлфункциями – использование их в качестве аргументов некоторых команд. Например, для построения графика служит специальная функция fplot, заменяющая последовательность команд, приведенную выше. При вызове fplot имя функции, график которой требуется построить, заключается в апострофы, пределы построенияИуказываются в вектор-строке из двух элементов.

12.1.2.1. Файл-функции с несколькими входными аргументами

Все входные аргументы размещаются в списке через запятую.

Пример

Написать файл-функцию, вычисляющую длину радиуса-вектора точки трехмерного пространства.

58

function r = radius3(x, у, z) r = sqrt(х.^2 + у.^2 + z.^2);

Для вычисления длины радиуса-вектора теперь можно исполь-

зовать функцию radius3, например:

С12.1.2.2. Файл-функции с несколькими выходными аргументами

>> R = radius3(1, 1, 1)

R =

1.732

списокзаключается в квадратные .

Файл-функц с несколькими выходными аргументами удобны

при выч слен функц й, возвращающих несколько значений (в математике они называются вектор-функциями). Выходные аргументы добавляются через запятую в список выходных аргументов, а сам

Функцияскобки, переводящая время, заданное в секундах, в часы, минуты и секунды.

Пр мер

hour = floor(sec/3600);А minute = floor((sec-hour*3600)/60);

function [hour, minute, second] = hms(sec)

second = sec-hour*3600-minute*60;

При вызове файл-функций с несколькими выходными аргумен-

тами результат следует записывать в вектор соответствующей длины:

>> [Н, М, S] = hms(10000)

Д

H =

И

 

2

М =

46

S =

40

59

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