Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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


 

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

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

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

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


Листинг 3.2. Файл-функция с одним аргументом

function f=myfun (x)

f=exp(-x)*sqrt((x^2+1)/(x^4+0.1));

Слово function в первой строке определяет, что данный файл содержит функцию. Первая строка является заголовком функции, в которой размещается имя функции и списки входных и выходных аргументов. В примере приведенном в листинге 3.2, имя функции myfun, один входной аргумент х и один выходной — f. После заголовка следует тело функции (оно в данном примере состоит из одной строки), где и вычисляется ее значение. Важно, что вычисленное значение записывается в f. Не забудьте поставить точку с запятой для предотвращения вывода лишней информации на экран. Теперь сохраните файл в рабочем каталоге. Обратите внимание, что выбор пункта Save или Save as меню File приводит к появлению диалогового окна сохранения файла, в поле File name которого уже содержится название myfun. He изменяйте его, сохраните файл-функцию в файле с предложенным именем!

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

>> у = myfun(1.3)

y=

0.2600

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

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

» х = [1.3 7.2];

» у = myfun(x)

??? Error using ==> ^

Matrix must be square.

Error in ==> C:\MATLABRll\work\myfun.m

On line 2 ==>f=exp(-x)*sqrt((х^2+1)/(x^4+0.1));

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

Измените тело функции, как указано в листинге 3.3 (не забудьте сохранить изменения в файле myfun.m).

<== предыдущая лекция | следующая лекция ==>
Типы М-файлов | I Листинг 3.3. Файл-функция, работающая с массивом значений

Дата добавления: 2014-01-03; Просмотров: 577; Нарушение авторских прав?


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Рекомендуемые страницы:

Читайте также:
studopedia.su - Студопедия (2013 - 2020) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление
Генерация страницы за: 0.002 сек.