MATLAB
新建文件Mlearning.m输入如下内容,用于交互式程序控制function Mlearning()%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%运用交互式的设计方法,把FIND-S算法试验 及候选消除学习算法试验结合%一块组成一个MATLAB概念学习示例演示系统,两个试验分别在Finds.m 和houxuan.m文件%中,总的系统调用在Mlearning.m文件中。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%disp('………………………………欢迎使用MATLAB概念学习示例演示系统………………………………');disp('使用说明:请输入一个数字进行选择 0 代表:FIND-S算法试验 '); disp('1代表:候选消除学习算法试验 例num=0,1 '); disp('Designed by wangxiaobo email:1wangxiaobo@163.com 河南财经政法大学');while 1 trynum=input('请输入一个数字进行选择例num=0, 1\n num='); if num==0||num==1 switch num case 0disp('FIND-S算法试验'); Finds(); case 1 disp('候选消除学习算法试验'); houxuan(); otherwise end elseassert();endcatchdisp('你输入的num!=0或1');ends=input('是否结束MATLABMATLAB概念学习演示系统使用\n n=y or n\n n=','s');if s=='y'disp('谢谢您的使用');exit;break;enddisp('………………………………主菜单………………………………\n');disp('使用说明:请输入一个数字进行选择 0 代表:FIND-S算法试验 '); disp('1代表:候选消除学习算法试验 例num=0,1 '); end
使用方法:第一步在command windows 里输入Mlearning 运行这个文件。(源代码要放到MATLAB的work工作目录中,以待运行路径搜索)命令窗口如下图所示使用说明:请输入一个数字进行选择 0 代表:FIND-S算法试验1代表:候选消除学习算法试验
第二步 所以上图输入的是0 FIND-S算法试验运行,结果如下图:
命令窗体现在显示的是是否结束MATLABMATLAB概念学习演示系统使用 n=yor n n=就是说如果选择y就结束程序的运行,如选择n则继续。回到主菜单。我可以选择0 代表:FIND-S算法试验 1代表:候选消除学习算法试验,这次选择 1提示如下图:
结束试验可以选择y代表 退出matlab程序运行。
说明:为了解决在num=input('请输入一个数字进行选择例num=0, 1\nnum=');语句执行中,用户输入的不是0或1,想到了用MATLAB中的异常机制,try catch end 其中为了让不是0或1自行抛出异常而被catch捕获而执行catch中的语句我想到了用一个if end 来自行执行assert();抛出异常因为assert()不是MATLAB中的语言所以一定会抛出错误这样就可以变向的达到自抛出异常的作用了if num==0||num==1 switch num case 0disp('FIND-S算法试验'); Finds(); case 1 disp('候选消除学习算法试验'); houxuan(); otherwise end elseassert();endcatchdisp('你输入的num!=0或1');end如果不是0或1就执行assert 函数,catch收到异常就进行冗错 两个试验分别在Finds.m和houxuan.m文件中,总的系统调用在Mlearning.m文件中。