MATLAB编程基础

MATLAB编程基础

MATLAB有两种常用的工作方式:一种是交互式命令操作方式,另外一种是M文件的编程工作方式。在M文件的编程工作方式下,MATLAB可以像其他高级语言一样具有数据结构、控制流、输入输出和面向对象编程的能力,即编写一种扩展名为.mMATLAB程序,简称M文件。M文件编程具有语法简单、使用方便、调试容易等特点,被人们称为第四代编程语言。

1 M文件

M文件是由MATLAB命令或函数组成的文本文件,以.m为扩展名。M文件有两种形式,即命令文件(Script)和函数文件(Function)。命令文件是以命令和函数的结合,命令文件运行时不需要任何输入参数,也没有输出参数,MATLAB自动按顺序执行命令文件中的命令。函数文件使用Function声明的M文件,可以在文件中,输入参数和返回参数,一般情况下,用户不能靠单独输入其文件名来运行函数文件,而必须先给出输入参数,然后调用M文件函数。值得注意的是,函数文件是M文件最重要的组成部分,以下主要对函数文件进行介绍。

2 M文件函数的基本结构

MATLAB提供了3种结构允许用户创建自己的函数,即M文件函数(简称M函数)、匿名函数和内联函数。其中,最常用M文件函数结构。

MATLAB语言的函数文件包含如下5个部分。

(1)   函数题头:指函数的定义行,是函数语句的第一行,在该行中将定义函数名、输入变量列表及输出变量列表等。

(2)   HI行:指函数帮助文本的第一行,为该函数文件的帮助主题,当使用lookfor命令时,可以查看到该行信息。

(3)   帮助信息:这部分提供了函数的完整的帮助信息,包括HI之后至第一个可执行行或空行为止的所有注释语句,通过MATLAB语言的帮助系统查看函数的帮助信息时,将显示该部分。

(4)   函数体;指函数代码段,也是函数的主体部分。

(5)   注释部分:指对函数体中各语句的解释和说明文本,注释语句是以%引导的。

例如:

   function[outputoutput2]=function—exampleinput1input2  %    函数题头

   %This is function to exchange two matrices               %    HI

   %input1input2 are input variables                           %    帮助信息

   %output1output2 are output variables                    %    帮助信息

   output1=input2                                                        %     函数体

   output2=input1                                                        %     函数体

   %The end of this example function

3 程序流控制

MATLAB提供了5种控制程序流的结构:for循环结构、while循环结构、if-else-end分支结构和switch-case结构。由于MATLAB的这5种控制指令用法与C语言的十分类似,主要区别在于不需要用括号( )命令组括起来,而是用end来标识命令组结束。

(1)for循环结构

for循环结构的语法形式为:

for x=a : b : c     % a为循环初值,b为循环步长,c为循环终值。

(commands1)     

end

(2) while循环结构

while循环结构的语法结构为:

while  expression    %循环判决条件

(commands1)        % expression为逻辑真时,执行组命令commands1

end

(3) if-else-end分支结构

if-else-end指令为程序流提供了一种分支结构,指令形式如下:

if expression                     %判决条件;

(commands1)             %expression为逻辑真时,执行组命令commands1

else (commands2)     ;             %expression为逻辑假时,执行组命令commands2

end

(4) switch-case结构

switch-case指令的一般语法结构形式如下:

 

switch ex                                 %ex为一标量或字符;

case test1

(commands1)             %ex等于test1时,执行该组命令commands1%然后跳出该结构;

case test2

……

otherwise                          %otherwise指令可以不存在;

(commands)               %ex不等于前面所有检测值,则执行该组命令。

end

(5) try-catch分支结构

try-catch指令的一般语法结构形式如下:

try

(commands1)             %该组命令commands1总被执行;%若正确,则跳出此结构

catch

(commands2)             %仅当组命令commands1出现执行错误时,

%组命令commands2才被执行

end

4 Matlab函数创建与调试

MATLAB的M文件是通过M文件编辑/调试器窗口(Editor/Debugger)来创建的。单击MATLAB桌面上的图标,或者单击菜单“File”—“New”—“M-file”,可打开空白的M文件编辑器,也可以通过打开已有的M文件来打开M文件编辑器。如图A-8所示为打开已创建的M文件。MATLAB在Editor/Debugger窗口的Debug菜单中,提供了一些方法和函数用于M文件的调试;支持用户进行断点调试。同时在,用户创建和调试M文件时,可以在MATLAB的命令窗口中,运行mlint函数来分析M文件中的语法错误以及其他可能存在的问题和不完善的地方。

M文件编辑.png