matlab的控制流

一、if-else-end

格式:

①if   expression

commands

end

如果条件为真,则执行命令组


②if  expression

commands1:如果表达式为真,则执行

else

commands2:表达式为假,则执行

end


if  expression1

commands1:如果表达式为真,则执行

elseif    expression2

commands2:表达式为假,则执行

………………………………
else 
commands n

end

二,switch-case


格式: switch   value

case1   test1

commands1%如果tset1=value

case2  test2 

commands1%如果tset1=value

…………………………
casek   tsetk
commandsk   结束

otherwise

commands%如果前面所有的值都不等于value,则执行commands,并结束该结构

     end

说明:

(1)switch-case结构语法保证了至少有一组指令会被执行,

(2)switch指令之后的表达式value应为一个标量,或字符串。当标量时,用==比较,当为字符串时,会调用strcmp来进行比较

(3)如果value是一个元素数组,则matlab会把表达式的值,与元素数组的所有元素进行比较,如果元素数组中有某个元素与表达式值,相等,matlab则认为比较为真。

x=input('enter x:');
switch x
    case 1
        date='monday'
    case  2
        date='tuesday'
    case 3
        date='saturday'
    otherwise
        date='errror'
end
        

三、try-catch结构的具体语法形式如下

  try 

  commands1

%命令1总是被首先执行。若正确,执行完成后结束此此结构

catch 

commands2

%执行命令1时错误,则执行命令2 

end 


说明:

(1)只有当执行命令1错误时,才会执行命令2,try-catch只是提供了两个可供选择的命令组

(2)当执行command1发生错误时,可调用laster函数查询出错的原因,如果函数laster的运行结果为空字符串,则表示命令1执行成功

(3)如果执行命令2也发生错误,则matlab将终止该结构。

n=input('enter n');
m=input('enter m');
a=magic(n)
try
    a_m=a(m,:)
catch a_n=a(end,:) end
四、for循环的具体语法结构如下

for x=array

commands

end

说明:

(1)for指令后面的变量x称为循环变量,而for与end之间的组命令commands被称为循环体,循环体执行的次数是确定的,该次数由array数组的列数确定,因此,在for循环过程中,循环次数x依次赋值为数组array的各列,每次赋值。循环体都被执行。


五、while循环



六、控制流的其他指令

1、return指令:

当被调用函数执行完之后,matlab会自动将控制权转回主函数或命令窗口,在被调用函数中插入return指令,可以强制matlab结束该函数并把控制权转出。


2、input和keyboard

input把控制权暂时交给用户,用户在键盘输入数值,字符或表达式等,enter键将键入内容传递到工作区

keyboard指令:当执行遇到keyboard指令时,matlab将控制权暂时交给键盘,用户可以由键盘输入各种matlab指令,只有当用户输入完成时,并输入return指令后,控制权才交给matlab;


3、pause

pause指令的功能为控制执行文件的暂停与恢复,其具体语法格式为:

pause:暂停执行文件,等待用户输入任意键继续

pause(n):再继续执行文件之前,暂停n秒

-----------------------------------------------------------------------------------------------------------------------------------

4、continue

结束本次循环,进行下次循环

5、breake指令

直接停止整个循环、

6error和warning

编写M文件时,常用的错误或者警告指令的具体语法

①error(‘message’):显示出错信息message,终止程序

②errrortop:错误发生后,控制程序继续执行与否的开关

③laster:显示matlab系统判断的最新出错原因,并终止程序

④warning(‘message’):显示警告信息message,继续运行程序

⑤lasrwarn:显示matlab系统给出的最新警告程序,并继续运行


matlab的匿名函数:

f=@(input1,input2……)  expression

>> F=@(x,y) x*x+2*x*y+y*y;
>> whos
  Name      Size            Bytes  Class              Attributes

  F         1x1                32  function_handle              
  ans       1x1                 8  double                       
  i         1x1                 8  double                       
  sum       1x1                 8  double           


展开阅读全文

没有更多推荐了,返回首页