Функції користувача та їх описання
Зрозуміло, що, незважаючи на велику кількість бібліотек функцій, у MatLab визначені тільки основні математичні функції. Аті функції, які є результатом їхньої композиції, користувач повинен визначати сам. Це можна зробити за допомогою функції inline, або окремим файлом із розширенням *.m, написавши програму мовою системи MatLab. Другий спосіб використовується, якщо функція містить велику кількість рядків або користувачу потрібно звернутися до неї з різних файлів. Перший метод відповідає створенню внутрішніх, а другий — зовнішніх функцій. Робити описання функцій через командний рядок inline для програмістів ефективніше і простіше, ніж описувати функції не систематизовано, як це зроблено, наприклад, у системі MathCAD. Функції можуть знаходитися у будь-якій частині, вони ніде не описуються і, ніяким чином не упорядковані. Знайти таку функцію у великій програмі непросто. Виклик функцій з інших файлів не передбачений. Програмісту легше, коли здійснюється опис всіх функцій на початку або в кінці програми. Хоча оператор inline може стояти у будь-якому місці, з точки зору стилю програмування краще розташовувати функції послідовно на початку програми. Формат оператора inline:
змінна=inline(‘вираз’)
Параметри функції у цьому операторі не вказуються, вони формуються через послідовне зчитування параметрів усіх функцій у виразі, але при зверненні до функції їх необхідно вказувати.
Розглянемо простий приклад використання функції inline:
>> format short
>> sc2=inline(‘sin(x).^2+cos(y).^2’)
sc2 =
Inline function:
sc2(x,y) = sin(x).^2+cos(y).^2
>> sc2(3,4)
ans =
0.4472
>>
Спосіб створення зовнішньої функції — збереження її на диску у *.m файлі. Докладніше засоби створення таких функцій ми розглянемо у розділі 4, а зараз звернемо увагу на загальні принципи побудови з використанням уже відомих операторів.
За допомогою команди New опції меню File необхідно створити новий файл та запам’ятати його вдиректорії ./MatLab/work під ім’ям sc2. Текст повинен займати всього 2 командних рядки, обов’язково необхідно вводити коментарі для спрощення роботи з програмою. Тоді рядки для обчислення функції f(x, y) = sin2(x) + cos2(y) можуть мати такий вигляд:
% Обчислення функції f(x,y)=sin(x)^2+cos(y)^2
function I=sc2(x,y)
I=sin(x).^2+cos(y).^2
Створення зовнішньої функції закінчено, будь-який користувач системи може викикати її, а у разі потреби змінити рядки цієї програми. У цьому полягають переваги використання систем з відкритими кодами (Open Sources). Звернення до функції відбувається ще простіше: через список імен змінних,sc(x, y). Приклад використання функції sc2:
>> sc2(1,2)
ans=
0.8813
>> sc2(2,1)
ans=
1.1187
>>
Припускається посилання на функцію через ім’я змінної.Воно відповідає правилам мови програмування С:
>> fh=@sc2
Тепер, використовуючи функцію feval(fh,x,y), отримується значення функції sc2 для заданих x і y:
>> feval(fh,1,2)
ans=
0.8813
>> feval(fh,2,1)
ans=1.1187
>>
Дата добавления: 2016-05-11; просмотров: 790;