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个输出参数
1 m =
2 1 2 2
二、M-文件的结构
M-文件就是MATLAB程序文件,它是一个包含MATLAB语句组(命令序列)的普通ASCII文本文件,其扩
n = 1 1 3 3 4
展名为“.m”。M-文件有两类:脚本文件和函数文件。 1.脚本文件(亦称命令M-文件)
脚本文件的结构比较简单,它没有输入参数和输出参数,只是一些MATLAB命令行的组合。脚本文件中定义的变量都是全局变量。
?401??123?例4.给定矩阵A???012?? ,编写命令文件,输入矩阵A、B,并计算输出它?456?? ,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)
% 给定矩阵A和B,计算输出其矩阵和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-文件编辑器;