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