2

在 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 的新手,所以我可能完全找错了树。有任何想法吗?

4

1 回答 1

1

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

假设这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}]));
  ...

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

于 2012-09-13T16:53:08.343 回答