第02讲MATLAB语言基础0802.docx

上传人:b****6 文档编号:13805538 上传时间:2023-06-17 格式:DOCX 页数:22 大小:50.44KB
下载 相关 举报
第02讲MATLAB语言基础0802.docx_第1页
第1页 / 共22页
第02讲MATLAB语言基础0802.docx_第2页
第2页 / 共22页
第02讲MATLAB语言基础0802.docx_第3页
第3页 / 共22页
第02讲MATLAB语言基础0802.docx_第4页
第4页 / 共22页
第02讲MATLAB语言基础0802.docx_第5页
第5页 / 共22页
第02讲MATLAB语言基础0802.docx_第6页
第6页 / 共22页
第02讲MATLAB语言基础0802.docx_第7页
第7页 / 共22页
第02讲MATLAB语言基础0802.docx_第8页
第8页 / 共22页
第02讲MATLAB语言基础0802.docx_第9页
第9页 / 共22页
第02讲MATLAB语言基础0802.docx_第10页
第10页 / 共22页
第02讲MATLAB语言基础0802.docx_第11页
第11页 / 共22页
第02讲MATLAB语言基础0802.docx_第12页
第12页 / 共22页
第02讲MATLAB语言基础0802.docx_第13页
第13页 / 共22页
第02讲MATLAB语言基础0802.docx_第14页
第14页 / 共22页
第02讲MATLAB语言基础0802.docx_第15页
第15页 / 共22页
第02讲MATLAB语言基础0802.docx_第16页
第16页 / 共22页
第02讲MATLAB语言基础0802.docx_第17页
第17页 / 共22页
第02讲MATLAB语言基础0802.docx_第18页
第18页 / 共22页
第02讲MATLAB语言基础0802.docx_第19页
第19页 / 共22页
第02讲MATLAB语言基础0802.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第02讲MATLAB语言基础0802.docx

《第02讲MATLAB语言基础0802.docx》由会员分享,可在线阅读,更多相关《第02讲MATLAB语言基础0802.docx(22页珍藏版)》请在冰点文库上搜索。

第02讲MATLAB语言基础0802.docx

第02讲MATLAB语言基础0802

第二讲MATLAB语言

目录

一、MATLAB语言基础3

§2.1.1、MATLAB的数据3

1、数值表示方式3

2、数值显示格式3

3、永久变量4

§2.1.2、MATLAB的运算符4

1、算术运算符4

2、关系运算符5

3、逻辑运算符5

§2.1.3、MATLAB的函数5

1、基本函数5

2、自定义函数6

§2.1.4、MATLAB的矩阵产生6

1、矩阵的几种样式6

2、直接用数据产生矩阵6

3、利用增量产生矩阵7

4、利用函数产生矩阵7

5、利用矩阵产生矩阵7

§2.1.5、MATLAB的矩阵操作8

1、寻访矩阵中的数据8

2、修改数据8

3、插入、重排、提取、拉长、置空8

4、矩阵的规模8

二MATLAB语言应用9

§2.2.1、矩阵运算9

(1)概述9

(2)矩阵的加减法9

(3)矢量积与转置10

(4)复数的共轭与转置11

(5)矩阵的乘法11

(6)矩阵的除法13

(7)矩阵的乘幂14

(8)解线性方程15

§2.2.2、多项式运算16

(1)多项式的表示16

(2)多项式的值16

(3)多项式的根17

(4)多项式的系数17

(5)多项式的积:

18

(6)多项式的商:

18

(7)多项式的导数18

(8)多项式的曲线拟合19

§2.2.3、字符运算19

(1)字符数组19

(2)字符与数值的转换20

(3)字符串比较20

§2.2.4、符号运算21

(1)符号定义21

(2)因式分解21

(3)简化22

(4)反函数22

(5)求和23

(6)diff(f,v,n)-求导23

(7)int(f,v,a,b)-积分24

§2.2.5、Notebook操作24

 

【正文】

基本语句:

[变量1,变量2,...]=表达式(参数1,参数2,...)

常量3e8、[1,2;3,4]

数据变量A=[1,2,3;4,5,6]

永久变量pi、i

算术运算符+、-、*、/

表达式运算符关系运算符>、<、=

逻辑运算符&、|、~

内部函数sin、cos

函数工具箱扩展函数imread

自定义函数myf

一、MATLAB语言基础

§2.1.1、MATLAB的数据

1、数值表示方式

MATLAB环境下的数值(矩阵的元素)一般采用十进制,可以带小数点和正负号,以下数值都是合法的:

5、+10、-20.56、0.0045、-1000.、1.3e-4、100e20、-0.023e-012

ans=

5

2、数值显示格式

MATLAB内部数据运算都按双精度数据格式进行运算,不必指定数据格式。

可将运算结果显示为以下格式:

short-短整数long-长整数

shorte-8位指数longe-16位指数

shortg-显示8位longg-显示16位

hex-十六进制bank-货币格式

+-显示正负号rational-有理数格式

3、永久变量

realmin-最小浮点数

realmax-最大浮点数

eps-容差变量,定义1.0到最近浮点的距离

pi-圆周率

inf-正无穷大(1/0)

nan-非数(0/0)

i,j-虚数单位

举例1:

r=1/0,1/r(无穷大使用)

举例2:

r=0+realmin,sin(r)/r

§2.1.2、MATLAB的运算符

1、算术运算符

“+”-加,“-”-减

“*”-乘,“/”-除

“∧”-幂,“.”-点运算

MATLAB的算术运算符合通常的四则运算规则,它的计算能力及其强大。

例1:

[5+2*(7-3)]/2^3

ans=

1.6250

例2:

[(3+4i)×(5+6i)]^0.1

例3:

1/0,(-1)^-1.5,0÷0

Warning:

Dividebyzero.

ans=

Inf

复数计算:

(1)直角坐标:

z=a+bi

例:

z=2.73+5.48i

(2)极坐标:

z=r*exp(i*s)

例:

z=2*exp(i*pi/3)

(3)四个函数:

real(z)-实部,imag(z)-虚部,abs(z)-模,angle(z)-辐角

2、关系运算符

“<”-小于,“<=”-小于等于

“==”-全等于“>”-大于

“>=”-大于等于“~=”-不等于

关系运算结果仅为0和1。

例1:

a=3>=10

例2:

A=[1,2,3;4,5,6];B=4*ones(2,3)

B<=A

例3:

b=4

b<=A

3、逻辑运算符

“&”-与,“|”-或,“~”-非

逻辑运算的结果仅为0和非0

(1)。

例1:

A=[0,2,3,4;1,3,5,0]

B=[1,0,5,3;1,5,0,5]

A&B

例2:

a=1&0+1运算的优先级:

b=10-1>2|4算术运算最高

c=(a&b)|(a&b)关系运算其次

d=a&b-a<=1逻辑运算最低

§2.1.3、MATLAB的函数

1、基本函数

sin-正弦,cos-余弦,tan-正切,cot-余切

asin-反正弦,acos-反余弦,atan-反正切,acot-反余切

fix-朝零方向取整,ceil-朝正无穷大方向取整

round-四舍五入取整,floor-朝负无穷大方向取整

log10-常用对数,log-自然对数,exp-指数,sqrt-平方根

sign-符号函数,conj-复数共轭

2、自定义函数

*在命令行内建立函数:

f=inline('sin(x)+cos(x)');

计算sin(2.0)+cos(2.0):

f(2.0)

*用函数文件的方式:

建立sincos.m文件:

%这是一个简单的函数文件

%本函数用于计算sin(x)+cos(x)的值

%函数形式为:

y=sin(x)+cos(x)

functiony=sincos(x);%定义函数

y=sin(x)+cos(x);

§2.1.4、MATLAB的矩阵产生

1、矩阵的几种样式

*1×1矩阵:

代表标量a=3

*1×N矩阵:

行向量b=[1,2,3]

*N×1矩阵:

列向量c=[1;2;3]

*N×N矩阵:

方阵d=[1,2;3,4]

*M×N矩阵:

一般的矩阵e=[1,2,3;4,5,6]

2、直接用数据产生矩阵

例1:

A=[111213;212223;313233]

A=[11,12,13;21,22,23;31,32,33]

两种方法是等效的。

注意:

空格、逗号和分号

例2:

x=pi/6

B=[sin(x),cos(x);cos(x),-sin(x)]

3、利用增量产生矩阵

*[初值:

终值]-建立增量为1的行向量

例:

x=1:

10(等价于x=[1:

10])

*[初值:

增量:

终值]-按增量建立行向量

例:

x=1:

0.1:

10

x=

Columns1through9

1.00001.10001.20001.30001.40001.50001.60001.70001.8000

Columns10through18

1.90002.00002.10002.20002.30002.40002.50002.60002.7000

Columns19through27

2.80002.90003.00003.10003.20003.30003.40003.50003.6000

Columns28through36

3.70003.80003.90004.00004.10004.20004.30004.40004.5000

Columns37through45

4.60004.70004.80004.90005.00005.10005.20005.30005.4000

Columns46through54

5.50005.60005.70005.80005.90006.00006.10006.20006.3000

Columns55through63

6.40006.50006.60006.70006.80006.90007.00007.10007.2000

Columns64through72

7.30007.40007.50007.60007.70007.80007.90008.00008.1000

Columns73through81

8.20008.30008.40008.50008.60008.70008.80008.90009.0000

Columns82through90

9.10009.20009.30009.40009.50009.60009.70009.80009.9000

Column91

10.0000

*x=linspace(初值,终值,n)-创建两个数之间n个数的行向量

例:

x=linspace(0,pi,11)

x=linspace(0,1,11)*pi

4、利用函数产生矩阵

*zeros(m,n)-零矩阵zeros(5)

*ones(m,n)-1矩阵ones(5)

ans=

11111

11111

11111

11111

11111

*eye(m)-单位矩阵eye(5)

ans=

10000

01000

00100

00010

00001

*randn(m,n)-随机数矩阵randn(5)

ans=

-0.43261.1909-0.18670.11390.2944

-1.66561.18920.72581.0668-1.3362

0.1253-0.0376-0.58830.05930.7143

0.28770.32732.1832-0.09561.6236

-1.14650.1746-0.1364-0.8323-0.6918

*magic(n)-n维魔鬼矩阵magic(5)

ans=

17241815

23571416

46132022

101219213

11182529

*pascal(n)-n维pascal矩阵pascal(5)

*gallery(m,n)-一个测试矩阵gallery(5)

5、利用矩阵产生矩阵

*diag(A)-返回矩阵A对角元素成列向量

*diag(v)-以向量v作对角元素创建矩阵

*flipud(A)-矩阵上下翻转

*fliplr(A)-矩阵左右翻转

*rot90(A)-矩阵逆时针翻转90度

*tril(A)-提取矩阵A的下三角矩阵

*triu(A)-提取矩阵A的上三角矩阵

§2.1.5、MATLAB的矩阵操作

1、寻访矩阵中的数据

x=[12345]%产生1×5的数组

b=x(3)%寻访数组x的第3个元素

b=x([125])%寻访x的第1、2、5元素

b=x(1:

3)%寻访前三个元素

b=x(3:

end)%寻访第三个元素到最后一个

b=x(find(x>3))%由大于3的元素构成数组

b=x(3:

-1:

1)%由前3个数到排成数组

b=x([12344321])

%对元素的重复访问

2、修改数据

x=[1,2,3;4,5,6;7,8,9]%产生3×3的矩阵

b=x(find(x>4))%大于4的元素构成数组

x(2,2)=10%2行2列值改为10

x(3,:

)=20%第3行的值改为20

x=ones(5)%产生5×5全为1的矩阵

x(2:

4,2:

4)=0%第2、3、4行的

第2、3、4列元素改0

3、插入、重排、提取、拉长、置空

插入:

x=4:

6;A=[x-3;x;x+3]%插入创建新矩阵

重排:

B=A(3:

-1;1;1:

3)%以逆序重排行

提取:

C=A(1:

2;2:

3)%A的部分

拉长:

D=A(:

)%拉长成列

置空:

B(:

2)=[]%删除B的第二列

4、矩阵的规模

A=[3:

6;1:

4]%产生2×4的矩阵

s=size(A)%返回s为[行数列数]

[r,c]=size(A)%返回r为行数,c为列数

r=size(A,1)%只返回行数

c=size(A,2)%只返回列数

n=length(A)%返回行数、列数最大者

二MATLAB语言应用

§2.2.1、矩阵运算

(1)概述

矩阵与数组在数据形式上是一致的,但在运算上是有区别的。

Matlab的线性工具箱在目录matfun中。

几个常用的函数:

norm-矩阵的范数

rank-矩阵的秩

det-方阵的行列式的值

inv-逆矩阵

(2)矩阵的加减法

大小相等的矩阵才能加减:

【例】

A=pascal(3)

B=magic(3)

C=A+B

D=A-B

A=

111

123

136

B=

816

357

492

C=

927

4710

5128

D=

-70-5

-2-3-4

-3-64

(3)矢量积与转置

【例】

A=[1,2,3]%行向量

B=[3;5;9]%列向量

C=A*B%点积

D=B*A%叉积

E=D'%D的转置

A=

123

B=

3

5

9

C=

40

D=

369

51015

91827

E=

359

61018

91527

(4)复数的共轭与转置

若A为复数矩阵,则A'表示A的共轭,A.'表示转置。

【例】

A=[3+2i,5+3i;2+8i,9+5i]

B=A'%表示共轭

B=A.'%表示转置

(5)矩阵的乘法

【例】

A=[1,2,3;3,5,6;2,3,1]%定义两个3×3的矩阵

B=[5,2,8;9,6,3;2,5,6]

C=A*B%矩阵的乘积:

(C≠D)

D=B*A

E=A.*B%数组的相乘:

(E=F)

F=B.*A

(6)矩阵的除法

【例】

A=[1,2,3;3,5,6;2,3,1]%定义两个3×3的矩阵

B=[5,2,8;9,6,3;2,5,6]

C=A/B%矩阵的除法

D=A*B^(-1)

E=A*inv(B)

F=A./B%数组的除法

(7)矩阵的乘幂

A=[1,2,3;3,5,6;2,3,1]%定义1个3×3的矩阵

C=A^3%矩阵的乘幂

D=A*A*A

E=A^(-0.1)

F=A.^3%数组的乘幂

(8)解线性方程

若:

AX=B-解为X=B\A;

若:

XA=B-解为X=B/A。

【例】

A=[234;541;132]

B=[1;2;3]

X=A\B

【例】

A=[234;541;132]

%B=[475;147;526]

B=2*A

X=A\B

§2.2.2、多项式运算

(1)多项式的表示

对于多项式:

,可以表示为:

p=[10-2-5]

(2)多项式的值

【例】

p=[10-2-5]

polyval(p,5)%代表x=5时p的值

A=[94;68;27]

polyval(p,A)%返回一个矩阵

(3)多项式的根

【例】

p=[10-2-5]

r=roots(p)%返回所有根的列向量

(4)多项式的系数

【例】

p=[10-2-5]

r=roots(p);

q=poly(r)%返回的q与p相同,两者运算互逆

(5)多项式的积:

a=[123]%表示:

b=[456]%表示:

c=conv(a,b)%表示多项式的乘积

(6)多项式的商:

【例】

a=[123];b=[456];c=conv(a,b)

[q,r]=deconv(c,b)%c-被除数,b-除数,q-商,r-余数

(7)多项式的导数

p=[1234]%

k=polyder(p)%

p=

1234

k=

343

(8)多项式的曲线拟合

用p=polyfit(x,y,n)函数进行最小二乘法拟合,n为返回多项式的次数。

【例】

x=[12345];

y=[5.543.1128290.7498.4];

p=polyfit(x,y,1)

x2=1:

0.1:

5;y2=polyval(p,x2);

plot(x,y,'o',x2,y2);gridon

p=

Column1

123.3400

Column2

-176.8800

§2.2.3、字符运算

(1)字符数组

字符数组就是字符串。

【例】

name=['zhangweiping';'ksjfksdjfskd']%创建了一个14个字符的数组

name(3)%返回a

n1=name(end:

-1:

1)

name=

zhangweiping

ans=

a

n1=

gnipiewgnahz

(2)字符与数值的转换

【例】

name='zhangweiping';

name1=double(name)%字符转换为数值

name2=char(name1)%数值转换为字符

name1=

Columns1through7

1221049711010332119

Columns8through14

10110532112105110103

name2=

zhangweiping

(3)字符串比较

格式:

strncmp(s1,s2,n)-比较两串前n位字符

【例】

strcmp('hello','help')

strncmp('hello','help',3)

ans=

0

ans=

1

§2.2.4、符号运算

(1)符号定义

【例】

y=sym('2*sin(x)*cos(x)')

y=simple(y)

y=

2*sin(x)*cos(x)

y=

sin(2*x)

【例】

symsfai1fai2;

y=sym('sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2)')

y=simple(y)

y=

sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2)

y=

sin(fai1-fai2)

(2)因式分解

【例】

symsx;

f=x^4-5*x^3+5*x^2+5*x-6

factor(f)

f=

x^4-5*x^3+5*x^2+5*x-6

ans=

(x-1)*(x-2)*(x-3)*(x+1)

【例】

factor(1025)

ans=

5541

(3)简化

【例】化简:

symsx;

f=(1/x^3+6/x^2+12/x+8)^(1/3)

g1=simple(f)

g2=simple(g1)

f=

(1/x^3+6/x^2+12/x+8)^(1/3)

g1=

(2*x+1)/x

g2=

2+1/x

【例】化简

symsx;

f=cos(x)+(-sin(x)*sin(x))^(1/2)

g1=simple(f)

g2=simple(g1)

(4)反函数

【例】求f=x^2的反函数

symsx;

f=x^2

g=finverse(f)

(5)求和

【例】求

symsk;

f=1/(2*k-1)^2-(-1)^k/k

s=simple(symsum(f,1,inf))

(6)diff(f,v,n)-求导

symsx;

f=cos(x)+(-sin(x)*sin(x))^(1/2)

df1=diff(f,x,1)

df1=simple(df1)

df1=simple(df1)

(7)int(f,v,a,b)-积分

§2.2.5、Notebook操作

Matlab与Word的连接

安装:

notebook-setup

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2