MATLAB应用 MATLAB数据及运算

  • 格式:doc
  • 大小:840.50 KB
  • 文档页数:31

1 第2章 MATLAB数据及运算

2.1 变量及其操作

一、变量命名规则

1.变量名、函数名对字母大小写是敏感的

myfile与MyFile表示不同的变量

sin是MATLAB定义的正弦函数名,但SIN、Sin都不是

2.变量名的第一个字符必须是英文字母

3.变量名最多可包含63个字符(英文、数字和下划线)

4.变量名中不能包含空格、标点

my_exemple12是合法的变量名,12exemple、_exemple12、my exemple12、my.exemple12是非法变量名

二、MATLAB默认的预定义变量

每当MATLAB启动时,不经定义和赋值就会产生一些变量,称为MATLAB默认的预定义变量

这些变量都可以重新赋值。但最好不要对这些变量名重新赋值

预定义变量 含义 预定义变量 含义

ans 计算结果的缺省变量名 nargin 函数输入参数个数

eps 机器零阈值(机器的浮点运算误差限) narout 函数输出参数个数

Inf或inf 无穷大,如1/0 realmax 最大正浮点数

i或j 虚数单位 realmin 最小正浮点数

pi 圆周率 lasterr 存放最新的错误信息

NaN或nan 不是一个数(Not a Number),如0/0,∞/∞ lastwarn 存放最新的警告信息

例1 用键盘在MATLAB指令窗中输入以下内容

eps

eps —— 机器的浮点运算误差限。PC机上eps的默认值为 2.2204×10-16 ,若某个量的绝对值小于eps,则可以认为这个量为0。

例2 用键盘在MATLAB指令窗中输入以下内容

1/0,1.e1000,log(0)

Inf —— 无穷大量 + ∞ 的MATLAB表示,也可以写成inf 。同样地,- ∞

可以表示为 - Inf 。在 MATLAB 程序执行时,即使遇到了以 0 为除数的运算,也不会终止程序的运行,而只给出一个“除0”警告,并将结果赋成Inf ,这样的定义方式符合 IEEE 的标准。从数值运算编程角度看,这样的实现形式明显优于C语言。

例3 用键盘在MATLAB指令窗中输入以下内容

0/0,inf/inf,inf*0

注意 2 在MATLAB中,即使遇到以0为除数的运算,程序也不会终止运行。这时只给出一个警告,并将结果赋给inf或NaN

NaN —— 不定式( not a number ) ,通常由 0 / 0 运算、Inf / Inf 及其他可能的运算得出。 NaN 是一个很奇特的量,如 NaN 与Inf 的乘积仍为

NaN 。

例4 用键盘在MATLAB指令窗中输入以下内容

n= realmax,n= 1.7977e+309

例5 用键盘在MATLAB指令窗中输入以下内容

m= realmin,m=2.2251e-309

i 和 j —— 若i或j量不被改写,则它们表示纯虚数量j 。但在 MATLAB

程序编写过程中经常事先改写这两个变量的值,比如在循环过程中常用这两个变量来表示循环变量。如果想恢复该变量,则可以用语句 i = sqrt(-1)设置,即对 -1 求平方根。

三、MATLAB运算符和表达式

运算符

操作 数学表达式 MATLAB运算符 MATLAB表达式

加 a+b +

a+b

减 a-b - a-b

乘 ab * a*b

除 ab /或\ a/b或b\a

幂 ab ^ a^b

注意

所有运算都定义在复数域上

例1 用键盘在MATLAB指令窗中输入以下内容

u=sqrt(-4)

注意

对于方根,运算只给出处于第1象限的解

例2 用左除(\)和右除(/)计算表达式i27147cos5的值

用键盘在MATLAB指令窗中输入以下内容

(5+cos(47*pi/180))/(1+sqrt(7)-2*i)、(1+sqrt(7)-2*i) \(5+cos(180 \47*pi))

注意

对于标量,左除(\)或右除(/)所得到的结果是一样的

对于矩阵,左除(\)和右除(/)所得到的结果是不一样的

AX=B → A-1AX= A-1B → X=A-1B=A\B,

XA=B → XA A-1=B A-1 →X= BA-1= B/A

表达式表达式由变量名、运算符、函数名组成

表达式按优先级和自左向右的顺序运算 3 优先级从高向低的排序是:指数运算、乘除运算、加减运算

括号可以改变运算的顺序

赋值符“=”和运算符的两侧允许有空格

复数和复数矩阵

MATLAB把复数看成一个整体来处理(不像其它程序,把实部和虚部分开处理)

虚数单位用预定义变量i或j表示

复数z=a+bi=rei直角坐标表示与极坐标表示之间的转换

real(z):给出复数z的实部a=rcos

imag(z):给出复数z的虚部b=rsin

abs(z):给出复数z的模r=sqrt(a2+b2)

angle(z):以弧度为单位给出复数z的相角=arctg(b/a)

例1 写出复数ieziziz63212,21,43表达式,计算321zzzz

用键盘在MATLAB指令窗中输入以下内容

z1= 3 + 4i %书写格式1

z2 = 1 + 2 * i %书写格式2

z3=2*exp(i*pi/6) %书写格式2

z=z1*z2/z3

注意

%是注释号,在它后面及回车之前的输入部分是非执行的注释

在格式1中,4i表示一个完整的虚数,4和i之间不能有空格

在格式2中,i被看作一个预定义变量参与运算

格式1的运算速度要比格式2快,宜于在循环中采用

例2 复数矩阵的生成及运算

用键盘在MATLAB指令窗中输入以下内容

A=[1,3;2,4]-[5,8;6,9]i

A=[1,3;2,4]-[5,8;6,9]*i

B=[1+5i,2+6i;3+8*i,4+9*i]

C=A*B

注意

格式1仅用于复数标量的表达,不能表达复数矩阵

例3 求上例复数矩阵C的实部、虚部、模和相角

用键盘在MATLAB指令窗中输入以下内容

C_real=real(C)

C_imag=imag(C)

C_magnitude=abs(C)

C_phase=angle(C)*180/pi %以度为单位计算相角

四、MATLAB的数据结构

数据型、符号型、字符串型、多维数组、单元数组、类

数据型:可以单独输入,也可以赋值给数值变量 4 符号型:可用于公式推导,得到数学问题解析解

字符串型:C语言中字符串是用双引号括起来的,而MATLAB字符串是用单引号括起来的

1.数据型:

双精度浮点数,占8字节(64位),指数11位,尾数53位,符号1位。

在一般情况下,数据的存储和计算都是以双精度进行的。

但是,可以用format命令改变数据在屏幕上的显示格式

指令 含义

format

format short 通常保证小数点后4位有效数字;对于大于1000的实数,用5位有效数字的科学记数形式显示

format long 15位数字表示

format short e 5位科学记数表示

format long e 15位科学记数表示

format short g 从format short和format short e中自动选择最佳记数方式(缺省设置)

format long g 从format long和format long e中自动选择最佳记数方式

format rat 近似有理数表示

format hex 16进制表示

format bank (金融)元、角、分表示

format + 正数、负数和零分别用+、-和空格表示

例1:用format和format short格式显示的数值

输入:format(或format short) 回车

输入:pi 回车

例2:用format和format short格式显示1000的数值

输入:format(或format short) 回车

输入:1000*pi 回车

例3:分别用format long、format short e、format long e、format short g、format long g、format

rat和format bank格式显示的数值

例4:用format +格式分别显示、-和-的数值

五、MATLAB常用函数

三角函数

函数名称 数学表达 MATLAB表达

正弦 sin sin

反正弦 arcsin asin

余弦 cos cos

反余弦 arccos acos

正切 tg tan

反正切 arctg atan

余切 ctg cot

反余切 arcctg acot

正割 sec sec 5 反正割 arcsec asec

余割 csc csc

反余割 arccsc acsc

双曲函数

函数名称 数学表达 MATLAB表达

双曲正弦 sh sinh

反双曲正弦 Arsh asinh

双曲余弦 ch cosh

反双曲余弦 Arch acosh

双曲正切 th tan

反双曲正切 Arth atan

双曲余切 cth coth

反双曲余切 Arcth

acoth

双曲正割 sech sech

反双曲正割 Arsech asech

双曲余割 csch csch

反双曲余割 Arcsch acsch

指数函数

函数名称 数学表达 MATLAB表达

自然指数函数 ex

exp(x)

自然对数函数 ln log

常用对数函数 log10 log10

以2为底的对数函数 log2 log2

2的幂函数 2x pow2(x)

平方根函数 x1/2 sqrt(x)

复数函数

MATLAB表达 含义 MATLAB表达 含义 MATLAB表达 含义

abs 模,或绝对值 conj 复数共轭 real 复数实部

angle 相角(弧度) imag 复数虚部

例:求-的绝对值

输入:abs(-pi)

圆整函数和求余函数

函数名称 MATLAB表达 含义 例

向+∞圆整函数(天花板函数) ceil 不小于自变量的最小整数 ceil(π)=?

ceil(-π)=?

向0圆整函数 fix 向0方向取整数 fix(π)=?

fix(-π)=?

向-∞圆整函数floor 不大于自变量的最大整数 floor(π)=?