КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Создание М-файлов подпрограмм-функцийМ-функции являются 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; Если не обходимо вычислить в подпрограмме-функции несколько функций, то учитывая матричное представление данных, их можно представить как массив.
|