КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Синтаксис. · handle = @functionname – создает указатель на функцию с именем functionname;· handle = @functionname – создает указатель на функцию с именем functionname; · handle = @(arglist)my_fun – создает указатель на функцию my_fun, с аргументами, перечислеными в списке arglist · handle =str2func('my_fun') –создает указатель на функцию my_fun, заданую в виде строки символов; · handle = str2func('@(x)'my_fun(x)')) – создает указатель на функцию my_fun(х), заданую в виде строки символов.Результат, возвращаемый функциями handle представляет собой имя указателя.
Пример. 1.>> h=@sin – создание указателя h на стандартную встроенную функцию вычисления синуса; 2. >> rad = @(x,y) sqrt(x.^2+y.^2) – создание указателя rad для вычисления радиуса окружности: 3. >> MySqr = @(x)[x;x.^2]– вычисления квадрата числа >> MySqr([1 2 3]) ans = 1 2 3 1 4 9 Использование inline-функций и указателей очень удобно в тех случаях, когда параметром некоторой функции является функция, например, при использовании функции fplot('fun',limits) – построение графика функции fun или в задачах численного интегрирования, где аргументами функций, реализующих формулу приближенного значения определенного интеграла является подинтегральная функция (например, quad('fun',a.b) ). Следует отметить, что функция как аргумент является строковым параметром. Если функция описана командой inline, то в списке аргументов брать ее имя в апострофы не надо, так как при считывании имени выполняется подстановка символьной строки. Примеры. 1. Вычисление . Для этого определим подинтегральную функцию как поэлементное возведения в квадрат. >> g = inline('x.^2'); % описание функции >> quad(g,0,1) вызов функции вычисления интеграла ans = 0.3333 2. Построение графика функции , заданой М-файлом. Создадим М-файл который описывает функцию и сохраним его на диске: function y = sqr2( x ) % Вычисление квадрата числа
y=x.^2; end Далее, в командном окне создадим указатель используя два способа: 1) >> fh = str2func('@(x)sqr2(x)'); % создание указателя на функцию с % использованием str2func4 2) >> fh = @sqr2; % создание указателя с использованием @ Вызовем функцию построения графика: fplot(fplot('fun_name',limits), используя в качестве параметра указатель 'fun_name': >> fplot(fh,[0 2]) % построение графика функции, заданой М-файлом Часто в задачах возникает необходимость обработать сразу несколько функций, однако тип указатель не позволяет организовывать массивы. В таких случаях рационально испльзовать возможности обработки символьных строк, предусмтренныем в среде MATLAB аименно функцию feval, которая интерпретирует и вычисляет текстовую строку, которая может содержать либо арифметическое выражение, либо инструкцию, либо обращение к функции и позволяет передать аргументы вызываемой функции.
|