代码改变世界

MATLAB程序控制语句

2013-08-24 16:32  chloe_zhou  阅读(7169)  评论(0编辑  收藏  举报

   Matlab中的程序控制语句包括条件控制(Conditional Control)、循环(Loop Control)、异常处理(Error Control)和程序返回(Program Terminate).

1 条件控制语句

条件控制语句又称分支语句,在Matlab中包括if语句switch语句.

  (1) if 语句可以包含多个else或elseif也可以不包含,它必须以end结尾,例如  

a = 25;
if a>30
    disp(‘a比30大’); %输出字符串
elseif a>20
    disp(‘a比20大比30小’);
else
    disp(‘a比20小’);
end;

在命令窗口中运行结果如下:

  

  注意,其中elseif是连写.

  (2) Switch 语句一般包含若干个case和一个otherwise,且必须以end结尾,当表达式的值满足某一个case后,就只执行此case下的语句并结束,不再考虑后面的case. 例如

a = 25;
switch rem(a,2)
    case 0
        disp(‘a能被2整除’); 
    case 1
        disp(‘a不能被2整除’);
    otherwise
        disp(‘异常’);
end;

 2 循环语句

  Matlab中的循环语句包括for循环while循环,循环内支持用continuebreak语句跳出循环.

  (1) for 循环用于循环次数明确的情况下, 其中控制循环的索引变量用冒号隔开,整个循环语句以end结束. 在默认情况下,每执行一次循环则索引变量加1(也可以自定义索引变量的步长,让每执行一次循环使索引变量增加kk可为负数),当索引变量的值大于设定的结束值时结束循环.例如

x(1,1)=1;
for n=2:6
    x(1,n)=2*x(1,n-1)
end;

 在命令窗口中运行结果如下:

  

  (2) while循环用于在满足一定条件的情况下一直执行一段语句,当while后的条件不再满足时则结束循环, 例如

x(1,1)=1;
n=2;
while x(1,n-1)<128
    x(1,n)=2*x(1,n-1);
    n=n+1;
end;

 的运行结果为 x=[1,2,4,8,16,32,64,128].

3 continue 和 break语句

  简而言之,continue是结束本循环,break是结束本循环.

  例如在一个for循环中,假设循环索引变量是i, 在i的取值为1到100之间的情况下执行循环(即执行100次循环),且循环模块中的语句总共有30条. 如果在i=50时,执行了循环区域中的前10条语句后出现了continue语句,则此时程序会放弃执行剩下的20条语句,转而执行第i=51次的循环. 因此,continue语句并不改变循环的总次数,只会导致某(些)次循环执行得不完整.

  在相同情况下,如果程序在执行了循环区域中的前10条语句后出现break语句,则直接跳出该for循环,转而执行整个循环模块以外的后面的语句. 如果该循环模块包含在另一个大的循环模块中,则继续在大循环模块中执行循环. 因此,break语句会改变循环的次数.

4 try...catch语句

  try…catch 语句用于异常和错误处理,当捕获到一个异常时则执行catch后的语句,最后以end结尾,其语法结构如下

try
    statement
    …
    statement
catch meObj
    statement
    …
    statement
end;

 5 return 语句

  return语句用于直接结束执行,继而返回函数值.