在绘图的标题中使用变量的名称

时间:2016-07-06 07:59:19

标签: string matlab plot

我想在图表的标题中使用变量的名称。我试过这个:

str = sprintf('Spectral analysis - WELCH - %d', X);

但这取X的值,而不是X本身。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用inputname

您必须创建一个函数才能生效,因为inputname会将输入变量的名称返回给函数。首先创建一个anonymous function,它接受​​一个输入x,并返回所述变量的名称。然后使用您要使用的变量调用此函数:

variable_name = @(x) inputname(1);
str = sprintf('Spectral analysis - WELCH - %s', variable_name(X)); 

注意,您必须将%d更改为%s,因为您需要字符串,而不是数字。

答案 1 :(得分:0)

也许我理解错误的问题,你想要出现变量名而不是变量中的值吗?这样的事情呢?

 VariableName = 1:5;
 structure = whos
 VarName = structure(1).name 
 CompleteVarName = genvarname(repmat({VarName}, 1, 6), 'VarName');

 str=sprintf('Spectral analysis - WELCH - %s ', CompleteVarName{2:6});

 >> str

 str =

 Spectral analysis - WELCH - CompleteVarName1 Spectral analysis - WELCH - CompleteVarName2 Spectral analysis ...