Имя переменного входного параметра функции
inputname
является удобным способом передачи имени входной переменной в функцию. Например, функция проверяет типы данных входов и, если она находит неправильный тип, отображает имя переменной из вашей рабочей области.
Избегайте использования inputname
в критическом пути кода или получить имена переменных, которые будут использоваться с такими командами, как eval
, evalin
, и assignin
. Это использование inputname
может привести к тому, что код будет трудно поддерживать.
inputname
возвращает ошибку, если она вызывается внутри перегруженного subsref
, subsasgn
, subsindex
, numArgumentsFromSubscript
, numel
, или набор свойств или метод get.
Если функция, которая вызывает inputname
не вызывается из файла кода MATLAB, inputname
идет по стеку, пока он не находит вызов из кода MATLAB и не возвращает имена, которые он находит там. Для примера это поведение происходит, если inputname
вызывается из встроенной функции или MEX-функции.
Примите во внимание следующий код, в котором встроенный arrayfun
вызовы функций inputname
через указатель на функцию.
fn=@(x) inputname(x);
a=1:4;
arrayfun(fn,a,'uniformoutput',false)
ans = 'fn' 'a' '' ''
inputname
функция проходит по стеку до тех пор, пока не найдет вызов из кода MATLAB. В этом случае код MATLAB является базовым рабочим пространством, и inputname
возвращает имена переменных из базового рабочего пространства