我有一个函数读取.mat文件,其中包含几个向量。现在我想分析这些变量中的一个,比如variableA
。所以我在函数中的含义是:
variable = variableA;
该功能的其余部分适用于variable
。因此,当我想分析variableB
时,我只是在上面的陈述中更改它。是否可以传递一个字符串,比如'variableA'
作为函数的输入,以便我可以将variableA
的值分配给variable
?
例如:
string = 'variableA';
variable = something(string); % now variable holds the values of variableA
如上所述的构造可以更容易地在所有变量之间进行更改。我能找到的所有函数都允许我为字符串定义的变量赋值,而不是相反。
更新
为了澄清我的问题,请说你有以下功能:
function analyseFile(name)
%Load the file
load(file.mat)
toAnalyse = %variable from file.mat with name "name" from the argument
%Do some analysis e.g.
time = 0:0.001:(length(toAnalyse)-1)*0.001;
x = lsqcurvefit(@PronySeries,ones(2,1),time,toAnalyse,[0,0],[]);
%And e.g. some plotting
plot(time,toAnalyse)
hold on
plot(time,PronySeries(x,time))
end
现在,我想指定函数应该加载.mat文件的哪个变量,然后进行分析。因此,参数name
应该用作变量名。
我正在寻找一种比eval
更不容易出错的方法。对不起,原帖中没有注明。解决方案不必将字符串转换为变量本身。涉及细胞的解决方案将非常精细。