MATLAB eval 以文本形式发出命令

eval

计算MATLAB表达式
eval(expression) ;   %  expression 为 MATLAB 命令的字符串形式

  使用MATLAB编程时,若变量名称需要动态生成或动态改变,可使用该命令快速实现,例如:

Pollution={'PM25_TOT','O3_CN'};
month={'JAN','JUL'};

for i=1:length(month)
    for j=1:length(Pollution)
        fileName=['PRD_2017_',month{i},'_',Pollution{j},'_Monitor'];
        load(strcat(fileName,'.mat'));                             % 加载拟合所用的数据文件
        load(strcat(fileName,'_SW_UD_Paper_18_in2_ont1_ALL.mat')); % 加载拟合所用的数据文件
        eval([Pollution{j} 'sourceLpmaA=sourceLpmaA;']);           % 将来自不同污染物的变量名称之前加上该污染物的名称
        eval([Pollution{j} 'synergisticRadioCell=synergisticRadioCell;']);  % 同上
        eval([Pollution{j} 'linearSourceRadio=linearSourceRadio;']);        % 同上
        eval([Pollution{j} 'data=data;']);                                  % 同上
        clear sourceLpmaA synergisticRadioCell linearSourceRadio data
    end
end

  

特别注意:

大多数情况下,使用 eval 函数的效率低于使用其他 MATLAB 函数和语言构造的效率,生成的代码可能更难阅读和调试。

 
特别感谢:
刘杰
 
参考资料:
 
 
 
 
posted @ 2021-02-28 10:43  CollinsLi  阅读(190)  评论(0编辑  收藏  举报