Подтвердить что ты не робот

Что такое оператор @в MATLAB?

Я использовал MATLAB 6.5 раньше. Я получил несколько программ, которые используют "@". Может кто-нибудь сказать мне, что это такое?

Кстати, поддерживает ли MATLAB 6.5 этот оператор?

4b9b3361

Ответ 1

Оператор @создает дескриптор функции, что позволяет легко создавать и передавать вызов функции как переменную. У этого есть много хороших функций, ни один из которых не доступен вам, к сожалению. Это потому, что, как вы подозреваете, он не был введен в matlab до версии 7, релиз сразу после вашего.

Ответ 2

Он использовался для объявления анонимных функций в Matlab.

Я думаю, что это термин " Function Handle ".

Практически он охватывает неспособность Matlab объявить функцию в любом месте в любом файле M.

Вы можете увидеть это здесь: Какая ваша любимая трюк программирования MATLAB/Octave?

Я нашел, что это полезно в обработке изображений вместе с командой " blockproc ".

Ответ 4

function_handle (@)

Ручка, используемая в вызывающих функциях косвенноexpand и все на странице Синтаксис handle = @functionname handle = @(arglist) anonymous_function

Описание

handle = @functionname возвращает дескриптор указанной функции MATLAB®.

Функциональный дескриптор - это значение MATLAB, которое предоставляет средство для вызова функции косвенно. Вы можете передавать функции в вызовы другим функциям (часто называемые функциональными функциями). Вы также можете хранить дескрипторы функций в структурах данных для последующего использования (например, как обратные вызовы Handle Graphics). Функциональный дескриптор является одним из стандартных типов данных MATLAB.

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

handle = @(arglist) anonymous_function создает анонимную функцию и возвращает дескриптор этой функции. Тело функции, справа от круглых скобок, представляет собой один оператор или команду MATLAB. arglist - список входных аргументов, разделенных запятыми. Выполните функцию, вызвав ее с помощью дескриптора функции, handle.

Примеры

Пример 1 - Построение дескриптора именованной функции В следующем примере создается дескриптор функции для функции humps и присваивается значение переменной fhandle.

fhandle = @humps; Передайте дескриптор другой функции так же, как и любой аргумент. В этом примере передается дескриптор функции, только что созданный для fminbnd, который затем минимизирует по интервалу [0,3, 1].

x = fminbnd (fhandle, 0,3, 1) x =   0,6370 Функция fminbnd оценивает дескриптор функции @humps. Ниже показана небольшая часть файла fminbnd. В строке 1 входной параметр funfcn принимает обработчик функции @humps, который был передан. Оператор в строке 113 оценивает дескриптор.

1 функция [xf, fval, exitflag, output] =...        fminbnd (funfcn, топор, BX, опционы, varargin)           ,           ,           , 113 fx = funfcn (x, varargin {:});