Main Content

InputName.

变量名称输入

描述

S.= InputName(argNumber返回Workspace变量名称,S.,对应于参数编号argNumber

你不能打电话InputName.from the MATLAB®命令提示符或从命令提示符调用的脚本中。

例子

全部收缩

在文件中创建以下函数,getname.m.,在当前的工作文件夹中。

functiongetname(a,b) s = inputname(1); disp(['第一个调用变量是'''S.'''.'])结束

Call the function at the command prompt using the variablesXandy

x = 5;y = 3;getName(x,y)
First calling variable is 'x'.

使用值而不是变量调用函数。该InputName.函数返回一个空chararray because its input does not have a name.

getname(5,3)
First calling variable is ''.

在文件中创建以下函数,getname2.m.,在当前的工作文件夹中。

functiongetname2(a,b,c)对于m = 1:nargin disp(['打电话变量'num2str(m)'是'''InputName(M)'''.'])结束

Call the function at the command prompt.

x = {'你好''再见'};y = struct('一种'那42,'B',78);z =兰特(4);getName2(x,y,z)
Calling variable 1 is 'x'. Calling variable 2 is 'y'. Calling variable 3 is 'z'.

Call the function using a field ofy。因为输入参数包含点索引,所以InputName.函数返回一个空char阵列为第二个变量名和所有后续变量名称。

getName2(x,y.a,z)
Calling variable 1 is 'x'. Calling variable 2 is ''. Calling variable 3 is ''.

Call the function using the second cell ofX。因为输入参数包含单元格索引,所以InputName.函数返回一个空char数组为第一个变量名和所有后续变量名称。

getName2(x {2},y,z)
Calling variable 1 is ''. Calling variable 2 is ''. Calling variable 3 is ''.

输入参数

全部收缩

函数输入参数的数量,指定为标量,真实,正整数值。如果argNumber超出传递到函数的输入参数的数量,matlab抛出错误。

数据类型:||INT8.|int16|int32|INT64.|uint8.|uint16|UINT32.|UINT64

输出参数

全部收缩

工作区变量名称,作为字符向量返回。如果输入参数没有名称,则InputName.函数返回一个空字符数组('')。例如,如果它是一个数字,表达式或索引表达式而不是变量,则输入参数没有名称。

如果an input argument to the function that callsInputName.包含细胞或点索引,InputName.返回该变量和后续变量的空字符数组。从单元阵列中提取元素或来自结构的字段产生逗号分隔的列表。逗号分隔的列表会导致任何输入的位置是动态的。因此,InputName.回报''对于制作列表的参数和遵循的参数。

Tips

  • InputName.是将输入变量的名称传送到函数的便捷方式。例如,函数检查输入的数据类型,如果它发现不正确的类型,则显示从工作区中的变量的名称。

  • Avoid usingInputName.在代码的关键路径中或获取要与命令一起使用的变量名称求解求解in那andassignin。这种使用InputName.可以导致难以维护的代码。

  • InputName.如果在重新载载中调用时返回错误子反馈subsasgn.S.ubsindexnumargumentsfromsubscript.numel.,或属性集或获取方法。

  • 如果函数调用InputName.没有从MATLAB代码文件调用,InputName.走上堆栈,直到它发现来自Matlab代码的呼叫,并返回它找到的名称。例如,如果发生此行为InputName.从内置函数或MEX函数调用。

    考虑内置的以下代码Arrayfun.function callsInputName.通过功能句柄。

    fn = @(x)inputname(x);a = 1:4;Arrayfun(FN,A,'uniformoutput'那false)
    ans = 'fn' 'a' '' ''

    InputName.功能走上堆栈,直到它发现来自MATLAB代码的呼叫。在这种情况下,MATLAB代码是基础工作空间,InputName.回报variable names from the base workspace

也可以看看

||

Introduced before R2006a