Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Создание М-файлов подпрограмм-функций




М-функции являются M-файлами, которые допускают наличие входных и выходных аргументов. Они работают с переменными в пределах собственной рабочей области, отличной от рабочей области системы MATLAB (рис. 1.14).

Рис. 1.14 Окно создания М-функции

СтруктураM-функции:

- function y = name(x) – строка определения функции;

- % текст – первой строки комментария;

- %текст – собственно комментария;

- <операторы> – тела функции,

где

- function – ключевое слово, определяющее М-функцию;

- y – выходной аргумент (если их несколько, то они объединяются в вектор);

- name – имя функции (должно содержать буквы только латинского алфавита и точно совпадать с именем файла на диске в котором функция храниться);

- x – входной аргумент (фиктивные переменные). Если входных данных несколько, то они перечислятся через запятую (например, x1,x2,…).

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

Пример.

Заголовок функции с несколькими входными и выходными аргументами:

function [x, y, z] = fangle(alpha, betta, gamma)

Обращение к даннофй функции:

>> [a b c]=fangle(alpha, betta, 0.12);

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

Примеры.

1. Вычисление радиуса сферы . Создадим и сохраним на диске М-файл вычисления радиуса

function r = radius3(x, у, z)

% вычисление радиуса сферы

r = sqrt(х.^2 + у.^2 + z.^2);

Зададим значения параметров и вычислим радиус и диаметр

>> x=2; y=3; z=4; % фактические значения параметров

>> R=radius3(x, y, z) % вычисление радиуса с помощью М-файла

R = 5.3852

>> D=2*radius3(x, y, z) % вычисление диаметра

D = 10.7703

2. Вычисление синуса разложением в ряд

function Sr = mysin(x)

% Вычисление синуса разложением в ряд

Sr = 0; k = 0;

while abs(x.^(2*k+1)/factorial(2*k+1))>1.0e-10

Sr = Sr + (-1)^k*x.^(2*k+1)/factorial(2*k+1);

k = k + 1; end

3. Листинг функции перевода секунд в часы, минуты и секунды

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

hour = floor(sec/3600);

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

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

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


Поделиться:

Дата добавления: 2014-12-30; просмотров: 157; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты