Методы вычисления. Лекция 2 (Part_2)
.pdfСкрипты и функции Функции
Выполнение функций и файл-скриптов
Имя файла и имя объявленной в нем функции предпочтительно делать одинаковыми. Каталог, в котором содержатся вызываемые функции должен быть текущим или добавлен в пути поиска.
Юдинцев В. В. (ТМ, СГАУ) |
Основы MATLAB |
10 февраля 2012 г. |
11 / 29 |
Скрипты и функции Функции
Выполнение функций и файл-скриптов
File Set Path
Юдинцев В. В. (ТМ, СГАУ) |
Основы MATLAB |
10 февраля 2012 г. |
12 / 29 |
Скрипты и функции Функции
Оператор return
Функция прекращает работу после выполнения последнего оператора.
Принудительно завершить функцию можно оператором return.
Юдинцев В. В. (ТМ, СГАУ) |
Основы MATLAB |
10 февраля 2012 г. |
13 / 29 |
Скрипты и функции Функции
Векторы, как аргументы функции
Большинство встроенных функций MATLAB корректно обрабатывают аргументы - векторы (матрицы).
>sin(1:5)
>0.8415 0.9093 0.1411 -0.7568 -0.9589
Создание собственных функций с таким поведением Аргумент x – только скаляр:
function f = myfun(x) f=exp(-x)*sqrt((x^2+1)/(x^4+0.1))
Аргумент x – вектор или скаляр: function f = myfun(x)
f=exp(-x).*sqrt((x.^2+1)./(x.^4+0.1))
Вызов функции: myfun([0.1 0.2 0.3])
Юдинцев В. В. (ТМ, СГАУ) |
Основы MATLAB |
10 февраля 2012 г. |
14 / 29 |
Скрипты и функции Функции
Построение графика функции
Функция fplot
fplot(’myfun’,[0 4]) fplot(@myfun,[0 4])
первый аргумент: имя или ссылка на функцию, второй аргумент: диапазон изменения аргумента функции
Юдинцев В. В. (ТМ, СГАУ) |
Основы MATLAB |
10 февраля 2012 г. |
15 / 29 |
Скрипты и функции Функции
Внутренние функции
Файл-функция вместе с определением основной функции может содержать определения вспомогательных функций, доступных к вызову только из основной функции.
Файл myfun.m:
function f = myfun(x) f1=infun(x) f=f1+cos(x)
% Внутренняя функция function f = infun(x) f=sin(x)
Переменные, используемые в подфункциях локальные.
Юдинцев В. В. (ТМ, СГАУ) |
Основы MATLAB |
10 февраля 2012 г. |
16 / 29 |
Скрипты и функции Функции
Вложенные функции
Вложенная функции определяется в теле основной функции. Файл myfun.m:
function f = myfun(x) f1=infun(x) f=f1+cos(x)
function f = infun(x) f=sin(x)
end end
вложенной функции доступны локальные переменные всех функций верхнего уровня и наоборот.
Юдинцев В. В. (ТМ, СГАУ) |
Основы MATLAB |
10 февраля 2012 г. |
17 / 29 |
Управляющие конструкции
Управляющие конструкции Циклы
Оператор цикла for
for count = start:step:final
команды
команды
end
Юдинцев В. В. (ТМ, СГАУ) |
Основы MATLAB |
10 февраля 2012 г. |
19 / 29 |
Управляющие конструкции Циклы
Оператор цикла while
while условие
команды
команды
end
Юдинцев В. В. (ТМ, СГАУ) |
Основы MATLAB |
10 февраля 2012 г. |
20 / 29 |