matlab教程--matlab快速入门-文字版, matlab电子书, 和matlab 有关的电子书:

2.5.2 条件和循环语句

2.5.2  条件和循环语句

    条件和循环语句属于流控制语句,MATLAB的流控制语句主要有四个:if,while,for,switch,它们都用 end  结束。

(一)if 语句

    条件语句 if 最简单的用法是:

if    <关系表达式>

      <语句1>

    end

如果关系表达式的值为1, 则语句1执行;否则,执行end 的后续命令。

    if 语句的另外一种用法是:

if     <关系表达式>

       <语句1>

    else

           <语句2>

    end

如果关系表达式的值为1, 则语句1执行;否则(关系表达式的值为0),语句2执行,然后执行end 的后续命令。

    当我们有多个选择时还可以用下列结构:

if       <关系表达式1>

         <语句1>

elseif  <关系表达式2>

         <语句2>

    elseif  <关系表达式n>

             <语句n>

else

         <语句n+1>

    end

如果关系表达式j(j=1,2,…,n)的值为1, 则语句j执行,然后执行end 的后续命令;否则,语句2执行,然后执行end 的后续命令。例如,可用以下程序得到图 2-1的分段函数。

function y=fun(x)

if       x<=0

         y=0;

elseif  x<=pi/2

         y=x;

else

         y=1;

end 

图2-1

 

 
                                                      

在MATLAB工作窗口输入程序:

>>x=31; y=fun(x)

运行后输出结果如下:

y =

      1

(二) for 语句

循环语句 for 的一般形式为

for   <循环参数>=<初值>:<步长>:<终值>

      <语句>

end

步长为1时可以省略。对于每一参数值,语句都重复执行。

    当作多重循环时 for 语句可以嵌套使用,如用以下程序可以生成希尔伯特矩阵。

function A=f(n,m)

A=zeros(n,m);

for i=1:n

         for j=1:m

              A(i,j)=1/(i+j-1);

         end

 end

      format rat

在MATLAB工作窗口输入程序:

>> n=4,m=5,A=f(n,m)

运行后输出结果如下:

A =

 

      1        1/2        1/3        1/4        1/5    

     1/2       1/3        1/4        1/5        1/6     

     1/3       1/4        1/5        1/6        1/7     

     1/4       1/5        1/6        1/7        1/8  

    for语句的循环参数可以是任意的数组或矩阵,循环参数依次取数组元素的值,或按矩阵的列依次取值。

(三)  while 语句

    for 循环主要应用于已知循环次数的情况,如果不知道循环次数,可以使用 while 循环来完成,其表达方式为

    while    <关系表达式>

              <语句>

    end

当关系表达式的值为1(真)时,语句被反复执行,直至关系表达式为0(假)时终止,如, 在MATLAB工作窗口输入程序:

     >>n=0;EPS=1;

       while (1+EPS)>1

            EPS=EPS/2;

            n=n+1;

       end

       EPS=2*EPS;

       n,format short E,EPS

运行后输出结果如下:

     n=

        53

     EPS = 

           2.2204e-016

 

这个例子给出了计算MATLAB中特殊常量 eps 的过程(我们用大写 EPS 以便与eps相区别)。EPS不断地被2除直到 (1+EPS)>1为假时终止。这里需要注意的是,MATLAB用16位数来表示数据,因此当 EPS接近10-16时,它会认为 (1+EPS)>1不成立。

    MATLAB还提供了跳出循环的 break 语句,遇到此语句立即执行此循环 end 的后续语句,如上面计算eps 的程序可以改为:

    >>EPS=1;

      for n=1:100

          EPS=EPS/2;

          if (1+EPS)<=1

             EPS=2*EPS;

          break

          end

     end

     n,format short E,EPS

运行后输出同样的结果。

(四) switch语句

    switch语句根据表达式的值来执行相应的语句,用法如下:

switch    <表达式>

case      value1

          <语句1>

    case       value2

              <语句2>

    otherwise

          <语句n>

    end

 

欢迎转载,转载请注明来自一手册:http://yishouce.com/book/2/2020502.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1