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

String 在绘图标题中使用变量的名称,string,matlab,plot,String,Matlab,Plot,我想在绘图标题中使用变量的名称。我试过这个: str = sprintf('Spectral analysis - WELCH - %d', X); 但这取X的值,而不是X本身 有什么想法吗?你可以用 必须创建一个函数才能使其工作,因为inputname将输入变量的名称返回给函数。首先创建一个接受一个输入x,并返回所述变量的名称的。然后使用要使用的变量调用此函数: variable_name = @(x) inputname(1); str = sprintf('Spectral analys

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

str = sprintf('Spectral analysis - WELCH - %d', X);
但这取X的值,而不是X本身

有什么想法吗?

你可以用

必须创建一个函数才能使其工作,因为
inputname
将输入变量的名称返回给函数。首先创建一个接受一个输入
x
,并返回所述变量的名称的。然后使用要使用的变量调用此函数:

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

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

也许我理解的问题不对,您希望变量名称出现,而不是变量中的值?像这样的

 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 ...
看看这里