2.1常量与变量
2.1.1 特殊常量
变量名
功 能 说 明
ANS(ans)
缺省变量名,以应答最近一次操作运算结果
i或j
虚数单位
Pi
圆周率
NaN
Not-a-number,表示不定值
tic
秒表开始执行
INF(inf)
代表无穷大
toc
秒表停止
Date
日历
Clock
时钟
2.1.2一般变量
变量命名遵守的原则:
1、 变量名区分大小写
2、 变量名长度不超过31位,超过的将被忽略
3、 变量名以字母开头,可以由字母、数字、下划线组成,但不能使用标点
2.2数组
2.2.1 建立数组
方法:1、逐个元素输入法 x=[1 2 ; 2 3;4 5]
2、冒号法 x=初始值:步长:终止值
3、特殊方法 x=linspace(初始量,终止量,数组元素个数)
y=logspace(初始量,终止量,数组元素个数)
2.2.2 引用数组
1、 一维数组
调用格式 x(n) x(n1:n2)
2、 二维数组
调用格式 x(m,:) x(:,n) x(m,n) x(m,n1:n2)
2.3运算符
2.3.1 算术运算符
操作符
功能说明
操作符
功能说明
+
加
\
算术左除
-
减
.\
点左除
*
算术乘
/
算术右除(传统)
.*
点乘
./
点右除
^
算术乘方
´
算术转置
.^
点乘方
.´
点转置
2.3.2 关系运算符
操作符
功能说明
==
等于
~=
不等于
>
大于
<
小于
>=
大于等于
<=
小于等于
2.3.3 MATLAB逻辑关系运算符
逻辑运算符
逻辑运算
说明
&
And
逻辑与
∣
or
或
~
Not
非
Xor
Xor
异或
逻辑运算规则
输入
与
或
异或
非
a
b
a&b
a|b
xor(a,b)
~a
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
例1:逻辑矩阵A=[1 1 ;0 1]、B=[0 1; 0 0],逻辑标量b=0,求c1=A&b ,c2=A|b, c3=xor(A,B)
2.3.4 逻辑函数
逻辑函数
函数意义
all
判断是否所有元素为非零值
any
判断是否存在一个元素为非零值
exist
查看变量或函数是否存在
find
找出向量或矩阵中非零元素的位置标识
isempty
判断矩阵是否为空矩阵
isequal
判断几个对象是否相等
isnumeric
判断对象是否为数值型
例2:向量a=[1 3 5] ,矩阵A=[1 2 3 ;0 4 5] ,求B1=all(a) B2=all(A)
B3=all(A,2)
例3:向量a=[0 3 0] ,矩阵A=[1 0 3;0 0 5] ,求B1=any(a) B2=any(A)
B3=any(A,2)
例 4:矩阵A=[1 0 3;0 0 5] ,求k=find(A) [I,j]=find(A) [I,j,v]=find(A)
例5:矩阵A=[0.34 0.6] ,B=[0.34;0.6] ,C=[‘who’],判断A与B、A与C是否相等
例6:矩阵A=[0.34 0.6] , B=[1+2*i 0.6+3*i] ,C=[‘who’],判断A、B、C是否为数据矩阵。
2.3.5 MATLAB特殊运算符
需要特别指出,下表中的特殊运算符是指在英语输入状态下输入的字符,若在汉字输入状态下输入则无效。
MATLAB特殊运算
符号
功能说明
:
冒号,在MATLAB中非常重要
;
分号,用于分隔行
,
逗号,用于分隔列
( )
圆括号,指出在算术表达式中先后次序
[ ]
方括号,用于构成向量和矩阵
{ }
大括号,用于构成单元数组
.
小数点或域访问符
..
父目录
…
用于语句行尾端表示该行未完
%
用于注释
!
用于调用操作系统命令
=
用于赋值
经常使用的MATLAB特殊运算符,功能说明如下:
(1)冒号(:)
①使用冒号可以输入行向量,其格式为:x = a : inc : b 。
a 是数组的第一个元素,inc是步长(两个元素的间隔),步长可正可负; a、inc、b三者之间用冒号分隔;当inc=1时可以省略。
【例2-1】在MATLAB命令窗口输入指令并回车(以下举例同此)。
(1)a= 10:5:30(2)a= 10:-1:0(3)a= 10:15
②使用冒号能够从向量、矩阵和数组中选出指定元素、行和列。
【例2-2】使用冒号选出指定元素。
1 2 3
A = 4 5 6
7 8 9
A= [1 2 3;4 5 6;7 8 9 ];
A(1:2,3)
③使用冒号能够从一个大矩阵中选取小矩阵。
【例2-3】使用冒号选取小矩阵示例。
1 2 3
A = 4 5 6
7 8 9
A= [ 1 2 3;4 5 6;7 8 9 ];
B= A(2:3,:)
(2)方括号([ ])
方括号可以输入矩阵,也可用方括号删除矩阵的行和列,此时方括号[ ]代表空阵。
【例2-4】用方括号删除矩阵的行和列。
A= magic(4);A
A(:,3)=[ ];
A
2.3.6数组函数
MATLAB 的基本数组函数
函数名
功能
函数名
功能
exp
指数
angle
复数的相角
log
自然指数
conj
复数的共轭
log10
常用对数
imag
复数的虚部
sqrt
平方根
real
复数的实部
abs
绝对值(复数的模)
sign
符号函数
2.3.7矩阵函数
1、矩阵生成函数
(1)zeros ( )函数
zeros ( )函数能够生成元素全为0的矩阵
(2)ones ( )函数
ones ( )函数能够生成元素全为1的矩阵
(3) magic ( )函数
在MATLAB中,magic ( )函数是一个特殊的函数,该函数能够自动生成一种特别的N 阶方阵(其中,N =1,3,4,5…)叫做魔方阵,这些N阶方阵具有一个共同的奇妙特性,即每一行,每一列或对角线上的元素之和都相等。
(4)diag ( ) 函数
diag ( ) 函数可以生成对角矩阵
(5)triu ( ) 函数
triu ( ) 函数可以生成上三角矩形
(6)tril ( )函数
tril ( )函数可以生成下三角矩形
(7)size ( )函数
size ( )函数用来返回指定矩阵的行数和列数
(8) eye( )函数
eye( ) 函数可以生成指定行数和列数的单位矩阵。
eye( )函数和size ( )函数常常一起使用,用以生成与指定矩阵同维的单位矩阵。
2.4 m文件
M文件可以在程序编译器、文本编译器中编写,都以‘.m’为扩展名存储。MTALAB语言中的m文件可以分为命令文件和函数文件两种。
2.4.1 命令文件
命令文件比函数文件简单,没有输入参数和输出参数,只是命令行的组合。
例 :分别绘制花瓣图案: (程序见’ 2.4.1.m’)
2.4.2 函数文件
用来定义一个函数,必须指出函数名、输入输出参数,并有MTALAB语句序列的操作与处理,从而生成所需要的数据。
函数文件格式包括:
(1) 函数定义行:定义函数名、输入输出参数。
(2) 帮助信息第一行:反映该m文件概括性的信息
(3) 帮助正文:从第二行到非注释行之间的注释为帮助正文
(4) 函数体:所有计算过程和输入输出参数的MTALAB代码
(5) 注释:以%开头
例:定义一个名为f.m的函数文件,并调用该函数。(object1.m)
2.4.3 m文件的调试
1、 m文件错误的种类
2、 识别错误:
2.5程序设计
2.5.1 顺序结构
依次执行程序各条语句。(2.5.1.m)
2.5.2 分支结构
1、 条件语句(if—else--end)
[一般形式] if
‘真’执行
Else
‘假’ 执行
end
[简化形式] if
‘真’执行
End
[嵌套形式] if
‘1真’执行
elseif
‘2真’执行
elseif
‘3真’执行
…..
Else
‘假’ 执行
end
例 (2.5.2.1m,a1.m)
2、开关语句(为了解决多分支判断)switch—case—end 即使多条case语句为真,程序只执行遇到的第一条case语句。
[一般形式] switch x
case 选择判断值1 {}
判断语句1
case 选择判断值2
判断语句2
….
otherwise
判断执行语句
end
例(f0233.m)
2.5.3 循环结构
1、 循环语句1(for--end)
适用于已知循环次数,不知道循环运算目标的问题
[调用形式] for 循环变量=
循环体
end
例(2.5.3.1.m)生成一个4行5列的矩阵
2、 循环语句2(while--end)
以条件满足与否来判断循环是否结束
适用于已知循环运算目标,不知道循环次数的问题
[一般形式] while
循环体
end
例 while i==5
A(i)=2;
end
A(i)
3、 循环语句的终止
在while 循环语句中,必须有修改循环控制变量的命令,否则该循环陷入死循环,除非循环语句中有退出循环控制命令(如break语句)。