第3章MATLAB编程基础 25 disp('Third Season'): case ('oct','Nov','Dec'); disp('Fourth Season'); end 如果变量month expr的值为“ul”,则输出显示为:Third Season,可以在命令窗口中先对变量赋 值,然后将上述代码粘贴至命令窗口中查看执行结果 程序示例:假设一5点量表,根据其等级显示对应的文本描述 option='完全不同意'; case tion='中立': case tion='完全同意': otherwise ption='未做选择 end 3.6.3for循环语句 for循环结构如下: end 其中values可以取以下三种形式: (I)initval:endval,initval代表初始值,endval代表结束值,中间用冒号(:)隔开: (2)initval:step:endval,.step代表步长,前一种形式每次递增值为l,此处可以指定每次递增值, 如果为负值,则递减: (3)valArray,循环按列遍历数组中的值, 。注意:使用break可以提前中止for循环. 程序示例:计算1~100的和 sums=sums+i ip (u) 程序示例:计算1~100间所有奇数之和 2o end disp(sums):
26 PSYCHTOOLBOX工具箱及MATLAB编程实例 程序示例:计算1~100间5的倍数之和 sums=0; for1=100:-5: end disp(sums): 程序示例:数组值累加 sums=0: for1=[273418195225] sums=sums+i; 程序示例:数组值累加 sumsnd(3,5) for i-a sums-sumsti 结果如下 a 85 0.2575 0.5060 0.9593 0.14930.25430.9293 3.069 2.7981 程序示例:显示10以内的偶数 d121 continue;如果是奇数,则跳过,如果for循环存在嵌套,使用continue语句作用于 包含该语句的内层循环 end sp(i); end 3.6.4 while循环语句 whi循环结构如下,只要条件表达式成立,就执行中间的语句,直至条件表达式不成立,循环中 间需要改变表达式的值或使用循环中断指令(b©ak),否则将有可能限于死循环。 while expression program statements end 程序示例:循环显示文件信息,文件命名规则为,主文件名后加1,2,3,n后缀,通过函数©xist 判断文件是否存在,如果存在,则利用函数imfinfo显示文件信息如果不存在,则中止循环 filenames'al.bmp': index=1:
第3章MATLAB编程基础 27 while exist(filename,'file') filename-['a'num2str(index)'.bmp']; end 程序示例:计算1~100的累加和 i=1: sums=0 while ic-100 1; end disp(sums); 程序示例:随机数累加,直至产生的随机数大于0.7 sums-0; while break;如果产生的随机数大于0.7,则跳出while循环,与continue类似,如果存在 循环铁套,则跳出包含该语句的内层的循环 end end disp(sums); 3.6.5ty错误控制语句 结构如下,在处理程序代码program statements部分时如果发生异常,则由eror-handling statements 处的程序代码来处理。 tr program statements catch exception error-handling statements end 程序示例:当读取图片文件出错时,处理是否因文件扩展名使用有误所造成的, ry号尝试打开文件 fid -fopen(filename,'r'); cacep文件打开失 if~exist(fi1 ename,'f11e')号为判断是杳是因为未找到文件所致 名尝试故变文件的射扩展名 ·.jpg','.jpeg') case .jpeg','.jpg')
28 PSYCHTOOLBOX工具箱及MATLAB编程实例 case '.tif'Change tif to tiff .tif',.tiff oa8teaegt28pHen8,.ti,tif otherwise endethow (excetio) 号更改文件扩展名后再进一步尝试打开文件 try ©果仍然无法打开文件,则出异常。由系统来处理 rethrow(exception) 。C如果文件行在无法打开 d in=-1;
第4章程序设计 MATLAB中所编写的程序文件以.m为扩展名,统称为M文件,其形式有两种:脚本和函数,前 者是MATLAB语句序列,不能接受参数,也不返回结果,但可以将其中所定义的变量存储在工作区 中:后者可以接受参数和返回结果。由于函数比脚本更灵活,更具有普适性,所以应用较广。MATLAB 提供了程序开发的编辑工具Editor,通过菜单File→New+Script或File→New→Function可以打开程序 编辑器,也可以在命令窗口中直接输入edt指令打开如图41所示的编辑器,其编辑功能与Windows的 记事本相似,但具有语法着色功能(关键字用不同颜色表示),我们可以先忽略不太熟悉的界面和菜单。 Editor-Untitled n 1 Col 图41程序编辑器 脚本的名称即为M文件的文件名,而函数名称则分为,当函数是主函数时,函数名称与M文件 名相同(可以不同,但建议取相同的名称),而子函数则与M文件名不同,甚至可以没有名称(匿名 函数)。而实际上,脚本也可以使用函数的形式,只不过不需要输入参数和返回参数之类的内容罢了。 4.1M文件的建立 M文件可以使用任意的文本编辑器来创建,在保存文件时必须用.m作为扩展名,建议使用 MATLAB自带的程序编辑器(Editor) 在程序编写时,为了便于自己或他人知晓脚本或函数的功能,可以使用注释来对程序代码和参数 的含义进行说明。M文件具有建议的规范格式,对于函数而言,示例如下。 function f-fact(n) 函数定义行,脚本无此行,否则为函数 actorial of N, 帮助文本