Matlab 笔记之十一---- ◎#有关 M 文件编写#◎ for 循环结构: for x = array ( commands ) end while 循环结构: while expression ( commands ) end a(1)=1 a(2)=1 i=2 while a(i)<=10000 a(i+1)=a(i-1)+a(i) i=i+1 end; i a(i) 单分支: if expression (commands) end 双分支: if expression (commands1) else (commands2) end 多分支: if expression1 (commands) elseif expression2 (commands) … … … … else (commands) end 如果判决条件expression 为一个空数组,MATLAB 认为条件为假(false)。 表达式有时由多个逻辑子表达式组成的,MATLAB 将尽可能少地检测这些子表达式的值。例如,表达式为:(子表达式 1 |子表达式 2),当 MATLAB检测到子表达式 1 的值为真时,它就认为表达式为真,而不再对子表达式 2 进行检测。又如,表达式为:(子表达式 1 & 子表达式 2),当 MATLAB 检测到子表达式 1 的值为假时,它就认为表达式值为假的,从而跳过该结构。 if 指令判决和 break 指令的配合使用,可以强制终止 for 循环或 while 循环。 switch-case 结构: switch ex ex 为一标量或字符串。 case test1 (commands 1) 当 ex 等于 test1 时,执行组命令 1,然后跳出该结构。 case test2 … … case testk (commands k) 当ex 等于testk 时,执行组命令k,然后跳出该结构。 otherwise otherwise 指令可以不存在 (commands) 表达式不等于前面所有检测值时,则执行该组命令。 end 1 当遇到 switch 结构时,MATLAB 将表达式的值依次和各个 case 指令后面的检测值进行比较。如果比较结果为假,则取下一个检测值再比较,一旦比较结果为真,MATLAB 将执行相应的一组命令,然后跳出该结构。如果所有的比较结果都为假,即表达式的值和所有的检测都不等,MATLAB 将执行otherwise后面的一组命令。由此可见上述结构保证了至少有一组命令会得到执行。 2 switch 指令后面的表达式应为一个标量或者为一个字符串。对于标量形式的表达式,比较这样进行:表达式 = = 检测值 i。而对于字符串,MATLAB将调用函数 strcmp 来实现比较:strcmp(表达式,检测值 i)。 3 case 指令后面的检测值不仅可以为一个标量值或一个字符串,还可以为一个元胞数组。如果一个检测值是一个元胞数组,MATLAB 将把表达式的值和该...