Spec-Zone.ru › Octave 9

11.12.2 Анонимные функции

Анонимные функции определяются с помощью следующего синтаксиса

@(argument-list) expression

Все переменные, отсутствующие в списке аргументов, наследуются из окружающей области видимости. Анонимные функции полезны для создания простых функций без имени из выражений или для обёртывания вызовов других функций, чтобы адаптировать их для использования такими функциями, как quad. Например,

f = @(x) x.^2;
quad (f, 0, 10)
    ⇒ 333.33

создаёт простую функцию без имени из выражения x.^2 и передаёт её в quad,

quad (@(x) sin (x), 0, pi)
    ⇒ 2

оборачивает другую функцию, а

a = 1;
b = 2;
quad (@(x) betainc (x, a, b), 0, 0.4)
    ⇒ 0.13867

адаптирует функцию с несколькими параметрами к форме, необходимой для quad. В этом примере значения a и b, передаваемые в betainc, наследуются из текущего окружения.

Обратите внимание: из соображений производительности лучше использовать дескрипторы существующих функций Octave, а не определять анонимные функции, оборачивающие существующие функции. Интегрирование с помощью sin (x) выполняется в 5 раз быстрее, если код записан так:

quad (@sin, 0, pi)

а не с использованием анонимной функции @(x) sin (x). Многие операторы имеют функциональные аналоги, которые могут быть предпочтительнее анонимной функции. Вместо записи

f = @(x, y) x + y

следует написать

f = @plus

Список операторов, имеющих также функциональную форму, см. в разделе Перегрузка операторов.

© 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/Anonymous-Functions.html

Spec-Zone.ru

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