MATLAB:以Stata样式引用变量名中的迭代字符串

时间:2012-09-13 15:52:50

标签: matlab stata

在MATLAB中,我想在一对数据集上执行一系列命令,这些数据集分别对男性和女性进行分组 - 我想分别导出结果。我对Stata很熟悉,所以我的直觉就是做这样的事情:

foreach X in m f{
    data_`X' = csvread('data_`X'.csv');
    variable_`X' = data_`X'(:,12);
    plot(1975:2011,variable_`X')
    print -djpeg graph_`X'
    % etc.
}

但我无法在MATLAB中找到类似于'X'的引用结构,这将允许迭代的字符串被称为变量名的一部分。

我是MATLAB的新手,所以我可能会完全咆哮错误的树。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你可以做到这一点,但它可能不是最有效的。

假设m是字符串的单元格数组,并且data_X.csv存在:

for ii=1:length(m)
  assignin('base',['data_' m{ii}], csvread(evalin('base',['data_' m{ii} '.csv'));
  assignin('base',['variable_' m{ii}],['data_' m{ii} '(:,12)']);
  plot(1975:2011, evalin('base',['variable_' m{ii}]));
  ...

我认为这会让你走上正轨。