将变量名作为函数输入,并获取其值作为输出

时间:2018-09-17 17:37:10

标签: matlab function

我在MATLAB的工作区中有很多变量,我必须通过一个函数创建一些统计信息。我需要输入变量的名称作为函数输入,我需要在函数中返回其值,然后对其进行处理。

varName='Sa'
function [ someStatistics ] = AnalyzeThis (varName);

因此,在此AnalyzeThis函数中,我需要获取Sa的值(它是一维数组)。我该怎么办?

1 个答案:

答案 0 :(得分:4)

简短答案:使用evalin

function someStatistics = AnalyzeThis(varName)
  varValue = evalin('caller', varName);
  % Do stuff with varValue
  ....
end

更长的答案:您实际上不应该将代码设计为依赖于evalinsuch as "evil" eval)之类的函数。与其在调用工作空间中没有一堆具有不同名称的变量,而是将数据存储在structures中,这很容易accessed by field names