MATLAB R2020a完全自学一本通
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.4 控制程序流的其他常用指令

4.4.1 return指令

通常,当被调用函数执行完成后,MATLAB会自动将控制权转回主函数或Commands窗口。但是如果在被调用函数中插入return指令,则可以强制MATLAB结束执行该函数并把控制权转出。

4.4.2 input和keyboard指令

(1)input指令将MATLAB的控制权暂时交给用户,用户通过键盘输入数值、字符串或表达式等,并按Enter键将输入内容传递到工作区,同时把控制权交还给MATLAB。其常用的调用格式如下。

● Value=input('message'):将用户输入的内容赋值给变量Value。

● Value=input('message','s'):将用户输入的内容以字符串的形式赋值给变量Value。

说明:

① 指令中的“message”是显示在屏幕上的字符串。

② 对于上面第一种调用格式,用户可以输入数值、字符串等各种形式的数据。

③ 对于上面第二种调用格式,用户无论输入什么内容,均以字符串的形式赋值给变量。

(2)当执行遇到keyboard指令时,MATLAB将控制权暂时交给键盘,用户可以由键盘输入各种合法的MATLAB指令。只有当用户输入完成,并输入return指令后,控制权才交还给MATLAB。

input和keyboard指令的不同之处在于:keyboard指令允许输入任意多个MATLAB指令,而input指令只允许用户输入赋值给变量的“值”,即数组、字符串或元胞数组等。

4.4.3 yesinput指令

yesinput指令是一个只能输入的指令,它提供的输入值是一个默认量,并可以对输入范围进行检查,其调用格式如下。

● Value=yesinput('Prompt',Default,Possib)。

说明:

(1)yesinput指令涉及用户和MATLAB之间的交互,因此无法在notebook程序中运行。

(2)Prompt为文字提示,Default为默认的设置值,Possib为可选值。

(3)当yesinput指令运行后,如果用户不输入任何值,则变量Value将接收默认值。

4.4.4 pause指令

pause指令的功能为控制执行文件的暂停与恢复,其调用格式如下。

● pause:暂停执行文件,等待用户按任意键继续。

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

4.4.5 continue指令

continue语句把控制权传给下一个在其中出现的if或while循环的迭代,忽略任何循环体中保留的语句。在嵌套循环中,continue语句把控制权传给下一个for或while循环所嵌套的迭代。

4-13continue指令使用示例。

本例展示了一个在magic.m文件代码中计算行数的continue循环,跳过所有空行和注释。continue语句用于前进到magic.m的下一行。

创建M文件并命名为ex4_13.m,利用M文件编辑器在M文件中输入:

img

运行后可得到如下结果:

img

4.4.6 break指令

在for循环或while循环结构中,有时并不需要运行到最后一次循环用户就已经得到了所需要的结果,那么后面的循环就变成冗余的了,消耗了运算时间并占用了内存。

break指令可进行对for循环或while循环结构的终止,通过使用break指令,可以不必等待循环的预定结束时刻,而是根据循环内部设置的终止项来判断。

若终止项满足,则可以使用break指令退出循环;若终止项始终未满足,则照常运行至循环的预定结束时刻。

4-14for循环的中途终止。

创建M文件并命名为ex4_14.m,利用M文件编辑器在M文件中输入:

img

运行M文件可得到如下结果:

img

4.4.7 error和warning指令

在编写M文件时,常用的错误或警告指令的调用格式有以下几种。

● error('message'):显示出错信息message,终止程序。

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

● lasterr:显示MATLAB系统判断的最新出错原因,并终止程序。

● warning('message'):显示警告信息message,继续运行程序。

● lastwarn:显示MATLAB系统给出的最新警告程序,并继续运行。