MATLAB上机实验实验报告材料.docx

上传人:b****8 文档编号:8843381 上传时间:2023-02-02 格式:DOCX 页数:91 大小:583.50KB
下载 相关 举报
MATLAB上机实验实验报告材料.docx_第1页
第1页 / 共91页
MATLAB上机实验实验报告材料.docx_第2页
第2页 / 共91页
MATLAB上机实验实验报告材料.docx_第3页
第3页 / 共91页
MATLAB上机实验实验报告材料.docx_第4页
第4页 / 共91页
MATLAB上机实验实验报告材料.docx_第5页
第5页 / 共91页
点击查看更多>>
下载资源
资源描述

MATLAB上机实验实验报告材料.docx

《MATLAB上机实验实验报告材料.docx》由会员分享,可在线阅读,更多相关《MATLAB上机实验实验报告材料.docx(91页珍藏版)》请在冰豆网上搜索。

MATLAB上机实验实验报告材料.docx

MATLAB上机实验实验报告材料

MATLAB上机实验一

一、实验目的

初步熟悉MATLAB工作环境,熟悉命令窗口,学会使用帮助窗口查找帮助信息。

命令窗口

二、实验内容

(1)熟悉MATLAB平台的工作环境。

(2)熟悉MATLAB的5个工作窗口。

(3)MATLAB的优先搜索顺序。

三、实验步骤

1.熟悉MATLAB的5个基本窗口

①CommandWindow(命令窗口)

②Workspace(工作空间窗口)

③CommandHistory(命令历史记录窗口)

④CurrentDirectory(当前目录窗口)

⑤HelpWindow(帮助窗口)

(1)命令窗口(CommandWindow)。

在命令窗口中依次输入以下命令:

>>x=1

>>y=[123

456

789];

>>z1=[1:

10],z2=[1:

2:

5];

>>w=linspace(1,10,10);

>>t1=ones(3),t2=ones(1,3),t3=ones(3,1)

>>t4=ones(3),t4=eye(4)

x=1

z1=

12345678910

t1=

111

111

11

t2=

111

 

t3=

1

1

1

 

t4=

111

111

111

 

t4=

1000

0100

0010

0001

思考题:

①变量如何声明,变量名须遵守什么规则、是否区分大小写。

答:

(1)变量声明

1.局部变量

每个函数都有自己的局部变量,这些变量只能在定义它的函数内部使用。

当函数运行时,局部变量保存在函数的工作空间中,一旦函数退出,这些局部变量将不复存在。

脚本(没有输入输出参数,由一系列MATLAB命令组成的M文件)没有单独的工作空间,只能共享调用者的工作空间。

当从命令行调用,脚本变量存在基本工作空间中;当从函数调用,脚本变量存在函数空间中。

2.全局变量

在函数或基本工作空间内,用global声明的变量为全局变量。

例如声明a为全局变量:

>>globala

声明了全局变量的函数或基本工作空间,共享该全局变量,都可以给它曲赋值。

如果函数的子函数也要使用全局变量,也必须用global声明。

3.永久变量

永久变量用persistent声明,只能在M文件函数中定义和使用,只允许声明它的函数存取。

当声明它的函数退出时,MATLAB不会从内存中清除它,例如声明a为永久变量:

>>persistenta

(2)变量命名规则如下:

始于字母,由字母、数字或下划线组成;

区分大小写;

可任意长,但使用前N个字符。

N与硬件有关,由函数namelengthmax返回,一般N=63;

不能使用关键字作为变量名(关键字在后面给出);

避免使用函数名作为变量名。

如果变量采用函数名,该函数失效。

(3)区分大小写

②试说明分号、逗号、冒号的用法。

答:

分号:

加上分号“;”其作用是将计算机结果存入内存,但不显示在屏幕上,反之,语句结尾若不加“;”,则表示在语句执行后,在将计算结果存入内存的同时,还将运算结果显示出来。

逗号:

分割列表

冒号:

从什么到什么,比如1:

10意思是——1到10

③linspace()称为“线性等分”函数,说明它的用法。

可使用help命令,格式如下:

>>helplinspace

④说明函数ones()、zeros()、eye()的用法。

答;

(1)ones()函数:

全部元素都为1的常数矩阵;

(2)zeros()函数:

全部元素都为0的矩阵;(3)eye()函数:

单位矩阵;(4)linspace()函数:

如a=linspace(n1,n2,n3),表示在线性空间上,行矢量的值从n1到n2

(2)工作空间窗口(Workspace)。

单击工作空间窗口右上角的按钮,将其从MATLAB主界面分离出来。

①在工作空间查看各个变量,或在命令窗口用who,whos(注意大小写)查看各个

变量。

②在工作空间双击变量,弹出ArrayEditor窗口(数组编辑器窗口),即可修改变量。

③使用save命令把工作空间的全部变量保存为my_var.mat文件。

>>savemy_var.mat

④输入下列命令:

>>clearall%清除工作空间的所有变量

观察工作空间的变量是否被清空。

使用load命令把刚才保存的变量载入工作空间。

>>loadmy_var.mat

⑤清除命令窗口命令:

>>clc

(3)历史命令窗口(CommandHistory)。

打开历史命令窗口,可以看到每次运行MATLAB的时间和曾在命令窗口输入过的命

令,练习以下几种利用历史命令窗口重复执行输入过的命令的方法。

①在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择

Copy,然后再Paste到命令窗口。

②在历史命令窗口中双击要执行的一行命令,或者选中要重复执行的一行或几行命令

后,用鼠标将其拖动到命令窗口中执行。

③在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择

EvaluateSelection,也可以执行。

④或者在命令窗口使用方向键的上下键得到以前输入的命令。

例如,按方向键“↑”

一次,就重新将用户最后一次输入的命令调到MATLAB提示符下。

重复地按方向上键

“↑”,就会在每次按下的时候调用再往前一次输入的命令。

类似地,按方向键“↓”的时

候,就往后调用一次输入的命令。

按方向键“←”或者方向键“→”就会在提示符的命令

中左右移动光标,这样用户就可以用类似于在字处理软件中编辑文本的方法编辑这些命令。

(4)当前目录命令窗口(CurrentDirectory)。

MATLAB的当前目录即是系统默认的实施打开、装载、编辑和保存文件等操作时的文

件夹。

打开当前目录窗口后,可以看到用“save”命令所保存的my_var.mat文件是保存在

目录C:

\MATLAB6p5\work下。

(5)帮助窗口(HelpWindow)。

单击工具栏的图标,或选择菜单View|Help,或选择菜单Help|MATLABHelp都能

启动帮助窗口。

①通过Index选项卡查找log2()函数的用法,在Searchindexfor栏中输入需要查找的

词汇“log2”,在左下侧就列出与之最匹配的词汇条目,选择“log2[1]”,右侧的窗口就

会显示相应的内容。

②也可以通过Search选项卡查找log2()函数的用法。

Search选项卡与Index选项卡

不同,Index只在专用术语表中查找,而Search搜索的是整个HTML帮助文件。

2.MATLAB的数值显示格式设置

屏幕显示方式有紧凑(Compact)和松散(Loose)两种,其中Loose为默认方式。

>>a=ones(1,30)

>>formatcompact

>>a

数字显示格式有short、long、shorte、longe等,请参照教材的列表练习一遍。

>>formatlong

>>pi

>>formatshort

>>pi

>>formatlong

>>pi

>>format+

>>pi

>>-pi

3.变量的搜索顺序

在命令窗口中输入以下指令:

>>pi

>>sin(pi);

>>exist('pi')

>>pi=0;

>>exist('pi')

>>pi

>>clearpi

>>exist('pi')

>>pi

思考题:

①3次执行exist('pi')的结果一样吗?

如果不一样,试解释为什么?

答:

不一样,pi原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clearpi之后所赋的值被清空,因此pi的值又成为3.1416

②圆周率pi是系统的默认常量,为什么会被改变为0?

答:

pi原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clearpi之后所赋的值被清空,因此pi的值又成为3.1416

 

实验二MATLAB语言基础

1、实验目的

基本掌握MATLAB向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。

交接字符串的操作。

2、实验内容

(1)向量的生成和运算。

(2)矩阵的创建、引用和运算。

(3)多维数组的创建及运算。

(4)字符串的操作。

三、实验步骤

1.向量的生成和运算

1)向量的生成

直接输入法:

A=

23456

>>B=[1;2;3;4;5]

B=

1

2

3

4

5

冒号生成发:

>>A=1:

2:

10,B=1:

10,C=10:

-1:

1

A=

13579

B=

12345678910

C=

10987654321

函数法:

Linspace()是线性等分函数,logspace()是对数等分函数。

>>A=linspace(1,10),B=linspace(1,30,10)

A=

Columns1through9

1.00001.09091.18181.27271.36361.45451.54551.63641.7273

Columns10through18

1.81821.90912.00002.09092.18182.27272.36362.45452.5455

Columns19through27

2.63642.72732.81822.90913.00003.09093.18183.27273.3636

Columns28through36

3.45453.54553.63643.72733.81823.90914.00004.09094.1818

Columns37through45

4.27274.36364.45454.54554.63644.72734.81824.90915.0000

Columns46through54

5.09095.18185.27275.36365.45455.54555.63645.72735.8182

Columns55through63

5.90916.00006.09096.18186.27276.36366.45456.54556.6364

Columns64through72

6.72736.81826.90917.00007.09097.18187.27277.36367.4545

Columns73through81

7.54557.63647.72737.81827.90918.00008.09098.18188.2727

Columns82through90

8.36368.45458.54558.63648.72738.81828.90919.00009.0909

Columns91through99

9.18189.27279.36369.45459.54559.63649.72739.81829.9091

Column100

10.0000

B=

Columns1through9

1.00004.22227.444410.666713.888917.111120.333323.555626.7778

Column10

30.0000

>>A=logspace(0,4,5)

A=

110100100010000

练习:

使用logspace()创建1-4

的有10个元素的行向量。

答案:

>>A=logspace(1,10,4*pi)

A=

1.0e+010*

Columns1through9

0.00000.00000.00000.00000.00000.00000.00010.00050.0035

Columns10through12

0.02310.15201.0000

2)向量的运算

维数相同的行向量只见可以相加减,维数相同的列向量也可以相加减,标量可以与向量直接相乘除。

>>A=[12345],B=3:

7,

A=

12345

B=

34567

>>AT=A',BT=B',

AT=

1

2

3

4

5

BT=

3

4

5

6

7

>>E1=A+B,E2=A-B

E1=

4681012

 

E2=

-2-2-2-2-2

>>F=AT-BT,

F=

-2

-2

-2

-2

-2

>>G1=3*A,G2=B/3,

G1=

3691215

G2=

1.00001.33331.66672.00002.3333

向量的点积与叉积运算。

>>A=ones(1,10);B=(1:

10);BT=B';

>>E1=dot(A,B)

E1=

55

>>E2=A*BT

E2=

55

>>clear

>>A=1:

3,B=3:

5,

A=

123

B=

345

>>E=cross(A,B)

E=

-24-2

2.矩阵的创建、引用和运算

1)矩阵的创建和引用

矩阵是由

元素构成的矩阵结构,行向量和列向量是矩阵的特殊形式。

直接输入法:

>>A=[123;456]

A=

123

456

>>B=[147

258

369]

B=

147

258

369

>>A

(1)

ans=

1

>>A(4:

end)

ans=

536

>>B(:

1)

ans=

1

2

3

>>B(:

ans=

1

2

3

4

5

6

7

8

9

>>B(5)

ans=

5

抽取法

>>clear

>>A=[1234;5678;9101112;13141516]

A=

1234

5678

9101112

13141516

>>B=A(1:

3,2:

3)

B=

23

67

1011

>>C=A([13],[24])

C=

24

1012

>>A([13;24])

ans=

19

513

函数法:

>>A=ones(3,4)

A=

1111

1111

1111

>>B=zero(3)

?

?

?

Undefinedfunctionormethod'zero'forinputargumentsoftype'double'.

>>B=zeros(3)

B=

000

000

000

>>C=eyes(3,2)

?

?

?

Undefinedfunctionormethod'eyes'forinputargumentsoftype'double'.

>>C=eye(3,2)

C=

10

01

00

>>D=magic(3)

D=

816

357

492

拼接法

>>clear

>>A=ones(3,4)

A=

1111

1111

1111

>>B=zeros(3)

B=

000

000

000

>>C=eye(4)

C=

1000

0100

0010

0001

>>D=[AB]

D=

1111000

1111000

1111000

>>F=[A;C]

F=

1111

1111

1111

1000

0100

0010

0001

拼接函数和变形函数法:

>>clear

>>A=[01;11]

A=

01

11

>>B=2*ones

(2)

B=

22

22

>>cat(1,A,B,A)

ans=

01

11

22

22

01

11

>>cat(2A,B,A)

?

?

?

cat(2A,B,A)

Error:

UnexpectedMATLABexpression.

>>cat(2,A,B,A)

ans=

012201

112211

>>repmat(A,2,2)

ans=

0101

1111

0101

1111

>>repmat(A,2)

ans=

0101

1111

0101

1111

练习:

使用函数法、拼接法、拼接函数法和变形函数法,按照要求创建以下矩阵:

A为

的全1矩阵、B为

的0矩阵/C为

的单位矩阵、D为

的魔方阵、E由C和D纵向拼接而成,F抽取E的2---5行元素生成、G由F经变形为

的矩阵而得、以G为子矩阵用复制函数(repmat)生成

的大矩阵H。

答案:

>>A=ones(3,4)

A=

1111

1111

1111

>>B=zeros(3,3)

B=

000

000

000

>>C=eye(3)

C=

100

010

001

>>D=magic(3)

D=

816

357

492

>>E=[C;D]

E=

100

010

001

816

357

492

>>F=(2:

5,:

?

?

?

F=(2:

5,:

Error:

Expressionorstatementisincorrect--possiblyunbalanced(,{,or[.

>>F=E(2:

5,:

F=

010

001

816

357

>>G=respace(E,3,4)

?

?

?

Undefinedcommand/function'respace'.

>>G=respace(F,3,4)

?

?

?

Undefinedcommand/function'respace'.

>>G=reshape(F,3,4)

G=

0311

0156

8007

>>H=repmat(G,2,2)

H=

03110311

01560156

80078007

03110311

01560156

80078007

 

2)矩阵的运算

矩阵的加减、数乘与乘法

已知矩阵:

>>A=[12

3-1],

A=

12

3-1

>>B=[-10

12]

B=

-10

12

>>A+B

ans=

02

41

>>2*A

ans=

24

6-2

>>2*A-3*B

ans=

54

3-8

>>A*B

ans=

14

-4-2

矩阵的逆矩阵

>>formatrat;A=[101;212;046]

A=

101

212

046

>>A1=inv(A)

A1=

-1/32/3-1/6

-210

4/3-2/31/6

>>A*A1

ans=

100

010

001

矩阵的除法

>>a=[121;314;221],b=[112],d=b'

a=

121

314

221

b=

112

d=

1

1

2

>>c1=b*inv(a),c2=b/a

c1=

6/73/7-4/7

c2=

6/73/7-4/7

>>c3=inv(a)*d,c4=a\b

c3=

1

2/7

-4/7

?

?

?

Errorusing==>mldivide

Matrixdimensionsmustagree.

>>c3=inv(a)*d,c4=a\d

c3=

1

2/7

-4/7

c4=

1

2/7

-4/7

练习:

按下列要求求出各种的矩阵运算的值

求矩阵的秩、特征值和特征向量、

矩阵的乘幂与开方;

矩阵的指数与对数

矩阵的提取与翻转

答案:

>>A=[6343

-257-4

8-1-3-7]

A=

6343

-257-4

8-1-3-7

>>B=rank(A)

B=

3

>>rb=rank(A)

rb=

3

>>[X,Lamda]=eig(A)

?

?

?

Errorusing==>eig

Matrixmustbesquare.

>>[X,Lamda]=eigs(A)

?

?

?

Errorusing==>eigs

AmustbeasquarematrixorafunctionwhichcomputesA*x.

>>C=[634

-257

8-1-3]

C=

634

-257

8-1-3

>>[X,Lamda]=eigs(C)

X=

0.8013-0.1094-0.1606

0.3638-0.65640.8669

0.47490.7464-0.4719

 

Lamda=

9.732600

0

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1