MATLAB入门教案.docx

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

MATLAB入门教案.docx

《MATLAB入门教案.docx》由会员分享,可在线阅读,更多相关《MATLAB入门教案.docx(59页珍藏版)》请在冰点文库上搜索。

MATLAB入门教案.docx

MATLAB入门教案

sym第一章MATLAB入门

MATLAB是线性系统的一种分析和仿真工具,是理工科大学生应掌握的技术工具,它作为一种编程语言和可视化工具,可解决工程、科学计算和数学学科中的许多问题。

MATLAB建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化。

矩阵是MATLAB的核心。

1.1变量与函数

1.1.1变量与数据

1.变量类型

MATLAB最常用的变量有数值数组(doublearray)和字符串(chararray)两类。

所有数值数组均以双精度(double)方式存储,不区分整数、实数、复数等,变量类型和数组大小也无需定义。

>>a=2+2i

a=

2.0000+3.0000i

>>a1=’Thisisastring’

a1=

Thisisastring

>>A=[12;34]

A=

12

34

2.变量命名规则

MATLAB中变量的命名规则是:

①变量名必需是不含空格的单个词;②变量名区分大小写;③变量最多不超过31个字符,第31个字符之后的字符将被忽略;④变量名必需以字母开头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号。

3.特殊常量和变量

特殊

变量

取值

特殊

变量

取值

ans

用于结果的缺省变量名

i,j

虚数单位

pi

圆周率

nargin

所及函数的输入变量数目

eps

计算机的最小数,当和1相加就产生一个比较大的数

nargout

所及函数的输出变量数目

flops

浮点运算数

realmin

最小可用正实数

inf

无穷大

realmax

最大可用正实数

NaN

不定量

4.用户变量名的查询

MATLAB命令窗口中用户变量名可用who或whos查询,如

>>who

Yourvariablesare:

Aaa1ansc

>>whos

NameSizeBytesClass

A2×232doublearray

a1×116doublearray(complex)

a11×1632chararray

ans1×1138symobject

c1×18doublearray

Grandtotalis30elementsusing226bytes

以上信息也可从工作间浏览器(workspacebrowser)中观察到,变量的值可以通过键入变量名得到,如

>>a

a=

2.0000+3.0000i

有些变量不再使用时,可用clear来清除,如

>>clearaA

>>a

?

?

?

undefinedfunctionorvariable‘a’

>>a1

a1=

Thisisastring

>>clear

注意clear与菜单Edit\Clearsession的区别,后者作用是将稿纸(窗口显示)擦干净。

5.数据显示格式

MATLAB缺省的显示格式为:

当结果为整数,就作为整数显示;当结果为实数,以小点后四位的精度表示,若结果的有效数字不在这一范围,以科学记数法显示(如1e-6表演示

)。

数据显示格式可通过命令format、vpa等改变。

显示格式的改变不会影响数据的实际值,所以不会影响计算精度。

>>c=pi

c=

3.1416

>>formatrational;c

c=

355/113%最接近的有理数之一

>>formatlong;c

c=

3.14159265358979%小数点后14位

>>format;c

c=

3.1416%恢复

>>vpa(c,6)

ans=

3.141593%小数点后6位

MATLAB还允许使用fprintf格式化输出,其用法基本与c语言一致。

>>fprintf(‘%20.6f’,c)

3.141593

1.1.2数学运算符及标点符号

MATLAB中的数学运算符见表

符号

作用

符号

作用

+

加法运算

./

点除运算

-

减法运算

^

乘幂运算

*

乘法运算

.^

点乘幂运算

.*

点乘运算

\

反斜扛表示左除

/

除法运算

MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果。

“%”后的所有文字为注释。

“…”表示续行。

>>a=[357-3532];

>>b=[1234567];

>>c=5;

>>a+b

ans=

471011099

>>a+c

ans=

8101221087

>>a*c

ans=

152535-15251510

>>a.*c

ans=

152535-15251510

>>a./b

ans=

3.00002.50002.3333-0.75001.00000.50000.2857

>>a.\b

ans=

0.33330.40000.4286-1.33331.00002.00003.5000

>>a.^b

ans=

325343813125729128

>>a.^c

ans=

243312516807-243312524332

>>c.^a

ans=

1.0e+0.04*

0.01250.31257.81250.00000.31250.01250.0025

1.13数学函数

MATLAB中的数学函数见表

函数

名称

函数

名称

sin(x)

asin(x)

cos(x)

acos(x)

tan(x)

atan(x)

abs(x)

max(x)

min(x)

最小值

sum(x)

元素的总和

sqrt(x)

开平方

exp(x)

以e为底的指数

log(x)

自然对数

log10(x)

以10为底的对数

sign(x)

符号函数

fix(x)

取整

1.1.4M文件

所谓M文件就是由MATLAB语言编写的可在MATLAB语言环球境下运行的程序源代码文件。

M文件可分为脚本文件和函数文件两种,不仅可以在MATLAB的程序编辑器中编写,也可以在其它的文本编辑器中编写,并以“m”为扩展名加以存储。

M文件建立的方法是:

①在MATLAB中,单击File-New-M-file;②在编辑窗口中输入程序内容;③单击file-save存盘,M文件名必需与函数名一致。

MATLAB的应用程序也能M文件保存。

1.M脚本

脚本仅是若干命令或函数的集合,用于执行待定的功能。

例如将以下几条语句写在编辑器中:

clear;s=0;

forn=1:

100

s=s+1/n/n;

end

s

保存为eg0_4(不加扩展名m)然后在命令窗口中执行

>>eg0_4

s=

1.6350

2.M函数

MATLAB的内部函数是有限的,有时为了研究某一函数的各种性态,需要为MATLAB定义新函数,为此必需编写函数文件,函数文件是文件扩展名为m的文件,这类文件的第一行必需是以特殊字符function开始,格式为

function因变量名=函数名(自变量名)

的语句;函数值的获得必需通过具体的运算实现,并赋给因变量。

例1.1定义函数

并计算

解:

⑴建立M文件:

fun.m

functionf=fun(x)

f=100*(x

(2)-x

(1)^2)^2+(1-x

(1))^2

⑵使用函数fun.m

计算

kwfdmdMATLAB命令窗口键入命令:

>>x=[12]

>>fun(x)

使用编辑器可以打开和修改M文件,观察变量值,调试程序等。

注意每次修改后都要存盘。

1.2数组

1.2.1创建简单数组

MATLAB中创建单数组的方法见表

命令

用途

x=[abcdef]

x=first:

last

x=first:

increment:

last

x=linspace(first,last,n)

x=logspace(first,last,n)

例如:

>>x=[123458718]

x=

123458718

>>y=1:

7

y=

1234567

>>z=3:

2:

9

z=

3579

>>v=[y,z]

v=

12345673579

>>u=linspace(2,9,11)

u=

2.00002.70003.40004.10004.80005.50006.20006.90007.60008.30009.000

1.2.2数组元素的访问

(1)访问一个元素。

x(i)表示访问数组的第i个元素。

(2)访问一块元素。

x(a:

b:

c)表示访问数组x的从a个元素开始。

以步长为b到第c个元素(但不超过c),b可以为负数,b缺省时步第为1.

(3)直接使用元素编址序号。

x([abcd])表示提取数组x的第a、b、c、d个元素构成一个新的数组:

[x(a)x(b)x(c)x(d)].

例如:

>>x=1:

9

x=

123456789

>>y=x(2:

2:

6)

y=

246

>>z=[x

(1)x(6)x(8)]

z=

168

1.2.3数组的方向

前面例子中的数组都是一行数列,是行方向分布的,称之为行向量。

数组也可以是列向量,它的数组操作和运算与行向量基本一样。

唯一的区别是结果以列形式显示。

产生列向量的方法有两种:

(1)直接产生,例如:

c=[1;2;3;4]

(2)转置产生,例如:

b=[1234]

c=b’

说明:

以空格和逗号分隔的元素指定的是不同列的元素;以分号分隔的元素指定的是不同行的元素。

1.2.4数组运算

1.标量-数组运算

数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算。

设a=[a1,a2,…,an],c为标量,则

a+c=[a1+c,a2+c,…,an+c]

a.*c=[a1*c,a2*c,…,an*c]

a./c=[a1/c,a2/c,…,an/c]

a.\c=[c/a1,c/a2,…,c/an]

a.^c=[a1^c,a2^c,…,an^c]

c.^a=[c^a1,c^a2,…,c^an]

例如:

>>a=[123]

>>b=[456]

>>c1=a+b

c1=

579

>>c2=a.*b

C2=

41018

>>c3=a./b

c3=

0.25000.40000.5000

>>c4=a.\b

c4=

4.00002.50002.0000

>>c5=a.^b

c5=

132729

2.数组-数组运算

当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行的,不同维数的数组不能进行运算。

设a=[a1,a2,…,an],b=[b1,b2,…,bn],则

a+b=[a1+b1,a2+b2,…,an+bn]

a.*b=[a1*b1,a2*b2,…,an*bn]

a./b=[a1/b1,a2/b2,…,an/bn]

a.\b=[a1\b1,a2\b2,…,an\bn]

a.^b=[a1^b1,a2^b2,…,an^bn]

例如:

>>a=[222]

>>b=[333]

>>c1=a+b

c1=

555

>>c2=a.*b

c2=

666

>>c3=a./b

c3=

0.66670.66670.6667

>>c4=a.\b

c4=

1.50001.50001.5000

>>c5=a.^b

c5=

888

1.3矩阵

1.3.1矩阵的建立

MATLAB中逗号和空格用于分隔某一行的元素,分号用于区分不同的行。

除了分号,在输入矩阵时,按Enter键也表示开始一新行,输入矩阵时,严格要求所有行有相同数量的列。

例如:

>>m=[1234;5678;9101112]

m=

1234

5678

9101112

>>p=[1111

2222

4444]

p=

1111

2222

4444

1.3.2特殊矩阵

MATLAB中几种特殊矩阵的建立方式见表

命令

用途

a=[]

产生一个空矩阵,当对一项操作无结果时,返回穸矩阵,空矩阵的维数为零

b=zeros(m,n)

产生一个m行n列的零矩阵

c=ones(m,n)

产生一个m行n列的元素全为1的矩阵

d=eye(m,n)

产生一个m行n列的单位矩阵

例如:

>>a=[]

a=

[]

>>b=zeros(2,3)

b=

000

000

>>c=ones(2,3)

c=

111

111

>>d=eye(3,3)

d=

100

010

001

1.3.3矩阵中元素操作

MATLAB对矩阵中元素的常用操作见表

命令

用途

a(r,:

提取矩阵a的第r行

a(:

r)

提取矩阵a的第r列

a(:

依交提取矩阵a的每一列,将a拉伸为一个列向量

a(i1:

i2,j1:

j2)

取矩阵a的第i1-i2行、第j1-j2列构成新矩阵

a(i2:

-1,i1,:

以逆序提取矩阵a的第i1-i2行,构成新矩阵

a(:

j2,-1:

j1)

以逆序提取矩阵a的第j1-j2列,构成新矩阵

a(i1:

i2,:

)=[]

删除矩阵a的第i1-i2行,构成新矩阵

a(:

j1:

j2)=[]

删除矩阵a的第j1-j2列,构成新矩阵

[ab]或[a:

b]

将矩阵a和b拼接成新矩阵

例如:

>>a=[123;456;789]

a=123

456

789

>>a1=a(2,:

a1=

456

>>a2=a(:

,2)

a2=

2

5

8

>>a3=a(:

a3=

1

4

7

2

5

8

3

6

9

>>a4=a(1:

2,2:

3)

a4=

23

56

>>a5=a(2:

-1:

1,:

a5=

456

123

>>a6=a(:

3:

-1:

2)

a6=

32

65

98

>>a7=a;a7(1:

2,:

)=[]

a7=

789

>>a8=a;a8(:

2,1)=[]

a8=

23

56

89

>>a9=[aa2]

a9=

1232

4665

7898

>>a10=[a;a1]

a10=

123

456

789

456

1.3.4矩阵的的运算

1.标题-矩阵运算

同标量-数组运算

2.矩阵-矩阵运算

(1)元素对元素的运算,同数组的运算。

(2)矩阵运算命令见表

命令

用途

命令

用途

a+b

det(a)

方阵a的行列式

a*b

inv(a)

方阵a的逆

[v,d]=eig[a]

方阵a的特征值与特征向量

例如:

>>a=[123

456]

a=

123

456

>>b=[12

12

12]

b=

12

12

12

>>c1=a+a

c1=

246

81012

>>c2=a*b

c2=

612

1530

>>c=[273;394;153]

c=

273

394

153

>>c3=det(c)

c3=

-3

>>c4=inv(c)

c4=

-2.33332.0000-0.3333

1.6667-1.0000-0.3333

-2.00001.00001.0000

>>[v,d]=eig(c)

v=

-0.5515-0.7857-0.2473

-0.73090.4412-0.3391

-0.4020-0.43370.8999

d=

13.463500

0-0.27470

000.8112

1.4关系与逻辑运算

MATLAB有6个关系运算和3个逻辑运算,都是对元素的操作。

逻辑运算中“真”用1表示,“假”用0表示,非零元素作为1处理。

1.4.1关系操作符

MATLAB中的关系操作符有<、<=、>、>=、==和~=等6个.

1.4.2逻辑运算符

MATLAB中的逻辑运算符有&、|和~等3个,分别表示与、或和非等运算,例如:

>>a=[12;34];b=[-13;-45]

>>a>b

ans=

10

10

>>a&b

ans=

11

11

>>a=[12;34];b=[04;32]

>>a>b

ans=

10

01

>>a&b

ans=

01

11

1.5控制流

MATLAB提供for循环、while循环、if-else-end结构等三种决策或控制流结构。

这些结构经常包含大量的MATLAB命令,故经常出现在MATLAB程序中,而不是直接加在MATLAB提示符下。

1.5.1for循环

for循环允许一组命令以固定的和预定的次数重复,其一般形式是:

forx=array

{commands}

end

在for和end语句之间的命令串{commands}按数组(array)中的每一列执行一次。

在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:

n).

例1.2对n=1,2,…,10,求

的值.

解:

建立M文件for1.m如下:

forn=1:

10

x(n)=sin(n*pi/10);

end

x

运行结果为:

x=

columns1through9

0.30900.58780.80900.95111.00000.95110.80900.58780.3090

Column10

0.0000

1.5.2while循环

与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值,其一般形式是:

whileexpression

{commands}

end

只要在表达式(expression)里的所有元素为真,就执行while的end语句之间的命令串{commands}

例1.3设银行年利率为11.25%.将10000元钱入银行,问多长时间会连本带利翻一番?

解:

建立M文件while1.m如下:

money=10000

years=0;

whilemoney<20000

years=years+1;

money=money*(1+11.25/100);

end

years,money

运行结果为:

years=

7

money=

2.1091e+004

1.5.3if-else-end结构

1.有一个选择的if-else-end结构一般形式是:

ifexpression

{commands}

end

如果在表达式(expression)里的所有元素为真,就执行if和end语句之间的命令串{commands}.

例1.4设

,求

解:

先建立M文件fun1.m定义函数

再在MATLAB命令窗口输入fun1

(2),fun1(-1)即可。

functionf=fun1(x)

ifx>1

f=x^2+1;

end

ifx<=1

f=2*x;

end

运行结果为:

>>fun1

(2),fun1(-1)

f=

5

ans=

5

f=-2

ans=

-2

2.有两个或更多选择的if-else-end结构的一般形式是:

if(expression1)

{commands1}

elseif(expression2)

{commands2}

elseif(expression3)

{commands3}

elseif……

……………………

else

{commands}

end

……

end

例1.5

,求

解:

先建立M文件fun2.m定义函数

再在MATLAB命令窗口输入fun2

(2),fun2(0.5),fun2(-1)即可。

functionf=fun2(x)

ifx>1

f=x^2+1;

elseifx<=0

f=x^3;

else

f=2*x;

end

end

运行结果为:

>>fun2

(2),fun2(0.5),fun2(-1)

f=

5

f=

1

f=

-1

 

第二章MATLAB作图

本章将介绍MATLAB的作图功能并对MATLAB的图形特性进行阐述。

这里所阐述的很多功能既可以用命令窗口的函数来自动实现,也可以使用图形窗口中的工具栏或菜单来实现。

2.1平面图

2.1.1曲线图

MATLAB作图是通过描点、连线来完成的,故在画一个曲线图形之前,必须先取得该图形上的一系列点的坐标,即横坐标值和纵坐标值,然后将该点集的坐标传给MATLAB函数画图。

MATLAB作平面图命令的一般形式为plot(x,y,s),其中x,y是向量,分别表示点集的横坐标和纵坐标;s指定颜色、线型等,见表:

颜色

线型

标记

b蓝

-实线

无标记

g绿

--双划线

*星号

r红

-.点划线

.实点

y黄

:

虚线

o小圆圈

m品红

x交叉号

c青

+加号

w白

s正方形

k黑

d菱形

Plot(x,y)是画实线;plot(x,y1,s1,x,y2,s2,…,x,yn,sn)是将多条线画在一起。

例2.1在[0,2π]用红线画sinx,用绿圈画cosx.

解编写程序如下:

x=linspace(0,2*pi,60);

y=sin(x);

z=cos(x);

w=log10(x);

plot(x,y,'r',x,z,'go',x,w,,'m.')

2.1.2符号函数(显函数、隐函数和参数方程)画图

1.ezplot

典型命令格式有:

ezplot(‘f(x)’,[a,b]),表示在a

ezplot(‘x(t)’,’y(t)’,[tmin,tmax]),表示在区间tmin

例2.2在[0,π]上绘制y=sinx的图形.

解:

输入命令:

ezplot(‘sin(x)’,[0,pi])

例2.3在[0,2π]上绘制

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

当前位置:首页 > 解决方案 > 学习计划

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

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