MATLAB 程序设计
MATLAB提供了一个完善的程序设计语言环境,使用户能够方便地编制复杂的程序,完成各种计算。本节先介绍关系运算、逻辑运算,再介绍M-文件(即程序文件)的结构及MATLAB的程序控制流语句。
一、关系运算和逻辑运算
1.关系运算
(1)关系运算符:
< < = > > = = = ~ =
(2)关系表达式:
用关系运算符将两个同类型的量(表达式)连接起来的式子。
【注】①关系运算本质上是标量运算,关系表达式的值是逻辑值(0-假1-真);
②当作用于两个同样大小矩阵时,则分别对两个矩阵的对应元素运算,结果是一个0-1矩阵。
例1.对向量进行关系运算。
>> A=1:5,B=5:-1:1      % 输入向量
A = 1  2 3  4  5        B = 5  4   3  2  1
>> C=(A>=4)            % 对向量进行关系运算
C = 0  0  0  1  1
>> D=(A==B)            % 对向量进行关系运算
D = 0  0  1  0  0
2.逻辑运算
(1)逻辑运算符:& (and,与)、| (or,或)、~ (not,非)
(2)逻辑表达式:用逻辑将两个逻辑量连接起来的式子。
【注】①逻辑运算本质上是标量运算,它将任何非零元素视为1(真);
②当作用于两个同样大小矩阵时,则分别对两个矩阵的对应元素运算,结果是一个0-1矩阵。(真值表见P27)
例2.对向量进行逻辑运算。
>> a=1:9,b=9-a   
a = 1 2  3  4  5  6  7 8  9        b = 8  7  6  5  4  3  2  1  0
>> c=~(a>4)            % 非运算
c = 1  1  1  1  0  0  0  0  0
>> d=(a>=3)&(b<6)      % 与运算
d = 0  0  0  1  1  1  1  1  1
3.逻辑函数
any(x)      向量x中有非零元返回1,否则返回0。(向量函数)
all(x)      向量x中所有元素非零返回1,否则返回0。(向量函数)
isempty(x)  矩阵x为空矩阵返回1,否则返回0
find(x)     返回向量x中非零元下标,若x是矩阵,则视其为一长列向量。
    例3.对向量或矩阵进行逻辑运算,或调用逻辑函数。
>> a=[1 0 -5 0;-3 0 8 2]
a = 1    0    -5    0
  -3    0    8    2
>> b=all(a)c=any(a)
b = 1    0    1    0
c = 1    0    1    1
>> x=isempty(a)        % 判定矩阵a是否为空,不能用关系式a==[]!
x = 0
>> y=find(c)          %返回向量c 中非零元下标
y =    1    3    4
>> z=find(a)                  % 1个输出参数 
z = [1    2    5    6    8]’
>> [m,n]=find(a)              % 2个输出参数
二、M-文件的结构
M-文件就是MATLAB程序文件,它是一个包含MATLAB语句组(命令序列)的普通ASCII文本文件,其扩展名为“.m”。M-文件有两类:脚本文件和函数文件。
    1.脚本文件(亦称命令M-文件)
脚本文件的结构比较简单,它没有输入参数和输出参数,只是一些MATLAB命令行的组合。脚本文件中定义的变量都是全局变量。
例4.给定矩阵  ,  ,编写命令文件,输入矩阵A、B,并计算输出它们的和与差。
    解:建立如下M-文件SY00504.m
A=[1 2 3;4 5 6];    % 输入矩阵A
    B=[4 0 1;0 1 2];    % 输入矩阵B
    C=A+B              % 计算输出A与B的和
    D=A-B            % 计算输出A与B的差
将上述文件以SY00504.m为名存盘,然后在命令窗口调用此M-文件,则有
>> SY00504
C =  5    2    4          D = -3    2    2
    4    6    8              4    4    4
2.函数文件(亦称函数M-文件)
和命令文件相比,函数文件稍微复杂一些。通常函数文件包含以下几个部分:
  (1)函数定义行  位于文件首行,以function开头,说明函数名、输入/输出参数.
  (2)帮助信息    紧跟函数定义行后面,以%开头的注释行,给出该函数的在线帮助.
  (3)函数体      函数的执行语句部分,是函数文件的核心部分。
  (4)注释部分    命令行中以符号“%”开始直到该行结束部分的注释语句。
例5.编写函数文件,计算任意两个同维数矩阵的和与差。(L000402.m
解:建立如下函数文件SY00505.m
function [C,D]=SY00405(A,B)
    % 给定矩阵AB,计算输出其矩阵和C和矩阵差D
    C=A+B;      % 计算矩阵和
    D=A-B;      % 计算矩阵差
  将上述文件以SY00405.m为名存盘,然后在命令窗口调用函数文件,则有
>> A=[1 2 3;4 5 6];B=[4 0 1;0 1 2];
>> [C,D]=SY00505(A,B)
C = 5    2    4          D = -3    2    2
      4    6    8              4    4    4
【注】
函数文件的第一行必须是函数说明语句;输入参量用圆括号括起,输出参量多于1个时用方括号括起;多个输入/输出参量时,参量之间用逗号隔开。
函数文件的变量一般是局部变量,可以用global命令将某些变量说明为全局变量。
函数文件的文件名一般应与函数说明语句中定义的函数名相一致。
函数文件可以递归调用。
三、M-文件的建立、编辑与调用
      1.M-文件的建立与编辑
方法1:在命令窗口输入命令:edit [M-文件名],即可打开相应M-文件编辑器。
方法2:单击菜单“File”->New”->M-file”,打开空白M-文件编辑器;
方法3:单击菜单“File”->Open”->输入文件名,打开相应M-文件编辑器;
方法4:在当前目录窗口中选择某M-文件,双击则可打开该M-文件编辑器;
      2.M-文件的调用
方法1:在MATLAB命令窗口中直接键入M-文件名,然后回车;
方法2:在当前目录窗口选择某M-文件,击右键选择命令RUN,即可运行该M-文件;
方法3:在M-文件编辑窗口中,单击工具钮RUN或菜单Debug/RUN,即可运行该M-文件。
【注】M被调用的M-文件必须位于当前目录或文件搜索路径范围内。
调用函数文件时,须事先对输入参量赋值,然后按照以下格式调用
                输出参量=函数名(输入参量)    (回车)
其中,实际参数和形式参数可以不同;输入参数要用小括号将其括起,输出参数多于一个时,要用中括号“[]”将其括起;参数间用逗号隔开。
四、MATLAB的控制流语句
MATLAB与其它计算机高级语言一样,有它自己的控制流语句,用户使用它们可以方便地编写出各种M-文件(应用程序)。
1.选择结构
  (1)if 语句 
一般格式:if <关系表达式1>
                <语句体1>
            elseif  <关系表达式2>
              <语句体2>
                  …
            elseif  <关系表达式n>
              <语句体n>
            else
                <语句体n+1>
            end
基本功能:若表达式j(j=1,2,…,n)的值为真,则执行语句体j,然后执行end的后续命令;否则,则执行语句体n+1,然后执行end的后续命令。
【注】if 语句结构中,关键字“else”和“elseif”所在语句行以及其后的语句体都不是必需的,但是关键字“end”不能省略。
例6.编写函数文件,计算分段函数             
解:编写函数文件(fenduan.m)如下:
function y= fenduan(x)            % 计算分段函数
if  x<=0   
>> x=-5:0.1:10;
>> n=length(x);
>> for k=1:n y(k)=fenduan(x(k));end
>> plot(x,y)
        y=0;
  elseif  x<=2*pi
  y=sin(x);
else
  y=x-2*pi;
end
(2)switch语句
一般格式:    switch  <表达式>
              case 1
                     <语句体1>
               
         case 值n
matlab定义函数表达式
                     <语句体n>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。