MATLAB从具有特定名称的工作空间中选择变量

时间:2015-09-05 18:24:53

标签: matlab

我想在我的工作区中选择名称遵循特定模式的所有变量。例如,我想计算工作区中所有变量的均值,从名称my_vars开始。

我尝试了以下代码:

  

a = who(' - regexp','my_vars *')

     

result = mean(eval(a))

eval函数对单元格不起作用。有什么工作吗?

1 个答案:

答案 0 :(得分:2)

who返回了char数组(即字符串)的单元格数组,每个元素包含一个变量名。您需要将其转换为包含逗号分隔的名称列表的字符串。这是一种方法:

my_vars1 = 1; my_vars2 = 2; my_vars3 = 3;
names = who('-regexp', 'my_vars*');
namelist = sprintf('%s,', names{:}); % sprintf reuses the format string if
                                     % there are more inputs than format specifiers 
namelist(end)=[];                    % strip last comma
eval(sprintf('mean([%s])', namelist))

ans =

     2