Spec-Zone.ru › Octave 9

11.12.1 Дескрипторы функций

Дескриптор функции — это указатель на другую функцию, который определяется с помощью синтаксиса

@function-name

Например,

f = @sin;

создает дескриптор функции с именем f, который ссылается на функцию sin.

Дескрипторы функций используются для косвенного вызова других функций или для передачи функции в качестве аргумента другой функции, такой как quad или fsolve. Например:

f = @sin;
quad (f, 0, pi)
    ⇒ 2

Для вызова функции с помощью дескриптора функции можно использовать feval или просто записать имя дескриптора функции, за которым следует список аргументов. Если аргументов нет, необходимо использовать пустой список аргументов ‘()’. Например:

f = @sin;
feval (f, pi/4)
    ⇒ 0.70711
f (pi/4)
    ⇒ 0.70711
: tf = is_function_handle (x)

Возвращает true, если x является дескриптором функции.

См. также: isa, typeinfo, class, functions.

: s = functions (fcn_handle)

Возвращает структуру, содержащую сведения о дескрипторе функции fcn_handle.

Структура s всегда содержит следующие три поля:

function

Имя функции. Для анонимной функции (без имени) здесь будет приведено фактическое определение функции.

type

Тип функции.

anonymous

Функция является анонимной.

private

Функция является закрытой.

overloaded

Функция перегружает существующую функцию.

simple

Функция является встроенной или функцией из m-файла.

subfunction

Функция является подфункцией в m-файле.

nested

Функция является вложенной.

file

m-файл, который будет вызван для выполнения функции. Для анонимных и встроенных функций это поле пустое.

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

Предупреждение: functions предназначена только для отладки. Ее поведение может измениться в будущем, поэтому программы не должны зависеть от какого-либо конкретного формата вывода.

См. также: func2str, str2func.

: str = func2str (fcn_handle)

Возвращает строку, содержащую имя функции, на которую ссылается дескриптор функции fcn_handle.

См. также: str2func, functions.

: hfcn = str2func (str)

Возвращает дескриптор функции, созданный из строки str.

Входное значение может быть именем функции, например "sin", или строкой, определяющей функцию, например "@(x) sin (x + pi)".

Примечание по программированию: В большинстве случаев лучше использовать синтаксис анонимных функций и позволить парсеру Octave создать дескриптор функции, а не использовать str2func. Например:

hfcn = @sin ;
hfcn = @(x) sin (x + pi) ;

См. также: func2str, functions.

: vars = symvar (str)

Определяет имена символьных переменных в строке str.

Обычные имена констант, такие как i, j, pi, Inf, и функции Octave, такие как sin или plot, игнорируются.

Все найденные имена возвращаются в виде массива ячеек со строками. Если переменные не найдены, массив пуст.

Пример:

symvar ("x^2 + y^2 == 4")
⇒ {
     [1,1] = x
     [2,1] = y
   }

© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Function-Handles.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API