exponenta event banner

функции

Информация об дескрипторе функции

Синтаксис

Описание

пример

s = functions(fh) возвращает информацию об дескрипторе функции. Эта информация включает имя функции, тип и имя файла.

Используйте functions функция только для запросов и отладки.

Примечание

Не использовать functions программно, потому что его поведение может измениться в последующих версиях MATLAB ®.

Примеры

свернуть все

Создайте дескриптор функции и просмотрите ее информацию.

fh = @cos;
s = functions(fh)
s = struct with fields:
    function: 'cos'
        type: 'simple'
        file: ''

Создайте дескриптор функции для анонимной функции. Отображение ее информации и значений требуемых переменных.

Создайте дескриптор функции x2 + y и вызовите функцию с помощью дескриптора.

y = 7;
fh = @(x)x.^2+y;
z = fh(2)
z =

    11

Отображение информации об дескрипторе функции.

s = functions(fh)
s = 

            function: '@(x)x.^2+y'
                type: 'anonymous'
                file: ''
           workspace: {[1x1 struct]}
    within_file_path: '__base_function'

Дескриптор функции содержит требуемое значение y.

s.workspace{1}
ans = 

    y: 7

Создайте функцию, возвращающую дескрипторы локальным и вложенным функциям. Отображение их информации.

Создайте следующую функцию в файле, functionsExample.m, в рабочей папке. Функция возвращает дескрипторы вложенной и локальной функции.

function [hNest,hLocal] = functionsExample(v)

hNest = @nestFunction;
hLocal = @localFunction;

    function y = nestFunction(x)
        y = x + v;
    end

end

function y = localFunction(z)
y = z + 1;
end

Вызовите функцию.

[hNest,hLocal] = functionsExample(13)
hNest = 

    @functionsExample/nestFunction


hLocal = 

    @localFunction

Отображение информации об дескрипторе вложенной функции.

s1 = functions(hNest)
s1 = 

     function: 'functionsExample/nestFunction'
         type: 'nested'
         file: 'C:\work\functionsExample.m'
    workspace: {[1x1 struct]}

Отображение информации об дескрипторе для локальной функции.

s2 = functions(hLocal)
s2 = 

     function: 'localFunction'
         type: 'scopedfunction'
         file: 'C:\work\functionsExample.m'
    parentage: {'localFunction'  'functionsExample'}

Входные аргументы

свернуть все

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

Выходные аргументы

свернуть все

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

Имя поля

Описание поля

function

Имя функции. Если функция, связанная с дескриптором, является вложенной функцией, имя функции принимает вид main_function/nested_function.

type

Тип функции. Например, 'simple', 'nested', 'scopedfunction', или 'anonymous'.

file

Полный путь к функции с расширением файла.

  • Если функция является локальной или вложенной, то file - полный путь к основной функции.

  • Если функция является встроенной функцией MATLAB, то file - пустой символьный массив ('').

  • Если функция является анонимной и определена в командной строке или в файле без пути MATLAB, то file - пустой символьный массив ('').

  • Если функция является анонимной и определена в файле по пути MATLAB, то file - полный путь к файлу.

  • При загрузке сохраненного дескриптора функции file - пустой символьный массив ('').

Структура имеет дополнительные поля в зависимости от типа функции, связанной с дескриптором. Например, локальная функция имеет parentage поле, а анонимная функция имеет workspace поле. Использовать информацию в s только для запросов и отладки.

Представлен до R2006a