Имя переменной ввода функции
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 возвращает имена переменных из базовой рабочей области