天天看点

PlatEMO上的main函数学习

仅供学习使用,若有侵权删除

PlatEMO使用方式有两种,一种是图形化的使用,直接通过main()调用,显示出界面;第二种是通过main()函数中使用参数,比如:

main(’-algorithm’,@ARMOEA,’-problem’,@DTLZ2,’-N’,200,’-M’,10)

function main(varargin)     %varargin这个参数是用来接收main函数中的参数
    cd(fileparts(mfilename('fullpath')));
    --------
      p = mfilename('fullpath')
是返回最近函数被激活函数的文件路径,里面包含文件名;
  cd(fileparts(mfilename('fullpath')));切换到当前文件路径(与linux系统中的指令相似)
    --------
    addpath(genpath(cd));  %addpath(genpath(cd));加入路径到matlab中
    if isempty(varargin)%如果main函数中没有参数,为空返回1,执行if中的语句;
        if verLessThan('matlab','8.4') %比较版本,低于8.4显示错误信息;
            errordlg('Fail to establish the GUI of PlatEMO, since the version of MATLAB is lower than 8.4 (R2014b). You can run PlatEMO without GUI by invoking main() with parameters.','Error','modal');
        else
            GUI();  %启动图形界面
        end
    else %若另一种情况,main函数中有参数,启动程序
        if verLessThan('matlab','7.14')
            error('Fail to execute PlatEMO, since the version of MATLAB is lower than 7.14 (R2012a). Please update the version of your MATLAB software.');
        else%版本符合要求
            Global = GLOBAL(varargin{:}); %varargin是元胞数组,这个意思是将输入变量赋值给Global这个自定义的类,里面的是重点
            Global.Start();%启动函数这个里面也是重点,建议调试的看。
        end
    end
end
           

平台上的代码写的好高级,看起来费事,不过继续加油,努力奋斗。