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 函数和语言构造的效率,生成的代码可能更难阅读和调试。
特别感谢:
刘杰
参考资料: