我在MATLAB的工作区中有很多变量,我必须通过一个函数创建一些统计信息。我需要输入变量的名称作为函数输入,我需要在函数中返回其值,然后对其进行处理。
varName='Sa'
function [ someStatistics ] = AnalyzeThis (varName);
因此,在此AnalyzeThis
函数中,我需要获取Sa
的值(它是一维数组)。我该怎么办?
答案 0 :(得分:4)
简短答案:使用evalin
:
function someStatistics = AnalyzeThis(varName)
varValue = evalin('caller', varName);
% Do stuff with varValue
....
end
更长的答案:您实际上不应该将代码设计为依赖于evalin
(such as "evil" eval
)之类的函数。与其在调用工作空间中没有一堆具有不同名称的变量,而是将数据存储在structures中,这很容易accessed by field names。