实验01 MATLAB运算基础第2章.docx
- 文档编号:28957084
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:46
- 大小:259.48KB
实验01 MATLAB运算基础第2章.docx
《实验01 MATLAB运算基础第2章.docx》由会员分享,可在线阅读,更多相关《实验01 MATLAB运算基础第2章.docx(46页珍藏版)》请在冰豆网上搜索。
实验01MATLAB运算基础第2章
实验01MATLAB运算基础
(第2章MATLAB数据及其运算)
一、实验目的
1.熟悉启动和退出MATLAB的方法。
2.熟悉MATLAB命令窗口的组成。
3.掌握建立矩阵的方法。
4.掌握MATLAB各种表达式的书写规则以及常用函数的使用。
二、实验内容
1.数学表达式计算
先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。
1.1计算三角函数
(注意:
度要转换成弧度,e2如何给出)
命令窗口中的执行过程:
Z1=(2*sin(85*pi/180))/(1+exp
(2))
Z1=
0.2375
1.2计算自然对数
,其中
(提示:
clc命令擦除命令窗口,clear则清除工作空间中的所有变量,使用时注意区别,慎用clear命令。
应用点乘方)
命令窗口中的执行过程:
x=[2,1+2i;-0.45,5];
>>Z2=0.5*log(x+sqrt(1+x.^2))
Z2=
0.72180.7347+0.5317i
-0.21801.1562
1.3求数学表达式的一组值
提示:
利用冒号表达式生成a向量,求各点的函数值时用点乘运算。
命令窗口中的执行过程:
a=[-3.0:
0.1:
3.0];
>>Z3=(exp(0.3*a)-exp(-0.3*a))*0.5.*sin(a+0.3)+log((0.3+a)*0.5)
Z3=
Columns1through3
0.7388+3.1416i0.7696+3.1416i0.7871+3.1416i
Columns4through6
0.7913+3.1416i0.7822+3.1416i0.7602+3.1416i
Columns7through9
0.7254+3.1416i0.6784+3.1416i0.6196+3.1416i
Columns10through12
0.5496+3.1416i0.4688+3.1416i0.3780+3.1416i
Columns13through15
0.2775+3.1416i0.1680+3.1416i0.0497+3.1416i
Columns16through18
-0.0771+3.1416i-0.2124+3.1416i-0.3566+3.1416i
Columns19through21
-0.5104+3.1416i-0.6752+3.1416i-0.8536+3.1416i
Columns22through24
-1.0497+3.1416i-1.2701+3.1416i-1.5271+3.1416i
Columns25through27
-1.8436+3.1416i-2.2727+3.1416i-2.9837+3.1416i
Columns28through30
-37.0245-3.0017-2.3085
Columns31through33
-1.8971-1.5978-1.3575
Columns34through36
-1.1531-0.9723-0.8083
Columns37through39
-0.6567-0.5151-0.3819
Columns40through42
-0.2561-0.1374-0.0255
Columns43through45
0.07920.17660.2663
Columns46through48
0.34780.42060.4841
Columns49through51
0.53790.58150.6145
Columns52through54
0.63660.64740.6470
Columns55through57
0.63510.61190.5777
Columns58through60
0.53270.47740.4126
Column61
0.3388
1.4求分段函数的一组值
,其中t=0:
0.5:
2.5
提示:
用逻辑表达式求分段函数值。
命令窗口中的执行过程:
t=[0:
0.5:
2.5];
>>Z4=t.^2.*(t>=0&t<1)+(t.^2-1).*(t>=1&t<2)+(t.^2-2.*t+1).*(t>=2&t<3)
Z4=
00.250001.25001.00002.2500
1.5对工作空间的操作
接着显示MATLAB当前工作空间的使用情况并保存全部变量
提示:
用到命令who,whos,save,clear,load,请参考教材相关内容。
命令窗口中的执行过程:
t=[0:
0.5:
2.5];
>>Z4=t.^2.*(t>=0&t<1)+(t.^2-1).*(t>=1&t<2)+(t.^2-2.*t+1).*(t>=2&t<3)
Z4=
00.250001.25001.00002.2500
>>who
Yourvariablesare:
Z1Z2Z3Z4atx
>>whos
NameSizeBytesClassAttributes
Z11x18double
Z22x264doublecomplex
Z31x61976doublecomplex
Z41x648double
a1x61488double
t1x648double
x2x264doublecomplex
>>save
Savingto:
matlab.mat
>>clear
>>load
Loadingfrom:
matlab.mat
2.矩阵运算与数组运算
已知:
2.1矩阵加、减和数乘运算
A+6*B和A-B+I(其中I为单位矩阵。
注意:
如何得到单位矩阵)
命令窗口中的执行过程:
formatcompact
>>A=[12,34,-4;34,7,87;3,65,7];
B=[1,3,-1;2,0,3;3,-2,7];
C=A+6*B
C=
1852-10
467105
215349
>>I=eye(3)
I=
100
010
001
C=A-B+I
C=
1231-3
32884
0671
2.2矩阵乘积和点乘积
A*B和A.*B
命令窗口中的执行过程:
A*B
ans=
684462
309-72596
154-5241
>>A.*B
ans=
121024
680261
9-13049
2.3矩阵的乘方和点乘方
A^3和A.^3
命令窗口中的执行过程:
C=A^3
C=
3722623382448604
247370149188600766
78688454142118820
>>C=A.^3
C=
172839304-64
2.4矩阵的右除和左除
A/B及B\A
命令窗口中的执行过程:
C=A/B
C=
16.4000-13.60007.6000
35.8000-76.200050.2000
67.0000-134.000068.0000
>>C=B\A
C=
109.4000-131.2000322.8000
-53.000085.0000-171.0000
-61.600089.8000-186.2000
2.5拼接矩阵成大的矩阵
[A,B]和[A([1,3],:
);B^2]
命令窗口中的执行过程:
C=[A,B]
C=
1234-413-1
34787203
36573-27
>>C=([1,3],:
);B^2]
?
?
?
C=([1,3],:
);B^2]
C=[A([1,3],:
);B^2]
C=
1234-4
3657
451
11019
20-540
3.矩阵乘积、矩阵的子矩阵
设有矩阵A和B
3.1求矩阵A和B的乘积
求它们的乘积并赋给C。
(提示:
可简化A的输入,用冒号表达式、reshape、矩阵转置)
命令窗口中的执行过程:
A=[1:
1:
25];
A=reshape(A,5,5);
>>A=A'
A=
12345
678910
1112131415
1617181920
2122232425
>>B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11];
>>C=A*B
C=
9315077
258335237
423520397
588705557
753890717
3.2求矩阵C的子矩阵
将矩阵C的右下角3×2子矩阵赋给D。
命令窗口中的执行过程:
formatcompact
>>D=[C(3:
5,2:
3)]
D=
520397
705557
890717
3.3查看MATLAB工作空间的使用情况
命令窗口中的执行过程:
whos
NameSizeBytesClassAttributes
C5x3120double
D3x248double
4.完成下列数据操作
4.1求[100,999]之间能被21整除的数的个数
提示:
先利用冒号表达式,再利用find和length函数。
命令窗口中的执行过程:
A=[100:
1:
999];
>>B=rem(A,21)==0;
>>K=find(B);
>>length(K)
ans=
43
4.2建立一个字符串向量,删除其中的大写字母
提示:
利用find函数和空矩阵。
命令窗口中的执行过程:
A=
ABc123d4e56Fg9
>>B=(A>='A'&A<='Z')
B=
Columns1through11
11000000000
Columns12through14
100
>>K=find(B)
K=
1212
>>A(K)
ans=
ABF
A(K)=[]
A=
c123d4e56g9
>>A
A=
c123d4e56g9
三、实验提示
1.1计算三角函数提示
(注意:
度要转换成弧度,e2如何给出)
提示1:
示例:
点击CommandWindow窗口右上角的
,将命令窗口提出来成悬浮窗口,适当调整窗口大小。
命令窗口中的执行过程:
提示2:
e2的表示请查表“2.3常用数学函数及其含义”。
用exp
(2)。
1.2计算自然对数提示
,其中
提示1:
clc命令擦除命令窗口,clear则清除工作空间中的所有变量,使用时注意区别,慎用clear命令。
提示2:
ln和开方的表示请查“表2.3常用数学函数及其含义”。
用log,sqrt。
提示3:
x2是数组运算。
用x.^2或x.*x。
提示4:
i为复数的虚数单位(j也是)。
若将i作变量则其虚数单位无效,恢复用cleari。
慎用i,j做变量。
1.4求分段函数的一组值提示
,其中t=0:
0.5:
2.5
提示:
用逻辑表达式求分段函数值。
提示1:
参考例2.4。
提示2:
对于第1个分段条件表达式0≤t<1,有以下结果:
对于第2、3个分段条件表达式,有类似的结果。
于是,可以得到:
分段函数值=第1个表达式*第1个分段条件表达式+第2个表达式*第2个分段条件表达式+第3个表达式*第3个分段条件表达式+…
注意:
分段区间是不重叠的。
对于在定义区间中任给的变量值,它只满足一个分段条件表达式(值为1),其它不满足(值为0),满足的对应项的值是其表达式的值,不满足的对应项值为0。
代入本题得:
z4=t^2*(t>=0&&t<1)+(t^2-1)*(t>=1&&t<2)+(t^2+2*t+1)*(t>=2&&t<3)
继续做下去可以完成本题。
若变量取100个值,求对应的函数值,还按这种方法来求做就有问题啦。
MATLAB提供了一种简单的方法:
t不是一个个取值,而是把所有值放到t中成一个行向量,表达式自动逐个将t中的值代入表达式计算,得到对应的一组函数值。
实现这种功能需要将上面的表达式中的乘方号(^)和乘号(*)前加点(.),即改成(.^)和(.*),相当于循环,它不同于线性代数中相应的矩阵乘方(^)和乘法(*)运算。
用冒号表达式更简单:
以下是分解式:
至此,能理解表达式的计算结果了吗?
1.5对工作空间的操作提示
接着显示MATLAB当前工作空间的使用情况并保存全部变量
提示1:
用到命令who,whos,save,clear,load,请参考教材相关内容。
步骤:
查看工作空间;保存工作空间;清除工作空间;再查看工作空间;装入工作空间;再查看工作空间。
2.1矩阵加、减和数乘运算提示
A+6*B和A-B+I(其中I为单位矩阵。
注意:
如何得到单位矩阵)
提示1:
3阶单位矩阵用eye(3)或eye(3,3)。
4.完成下列数据操作
4.1求[100,999]之间能被21整除的数的个数提示
提示:
先利用冒号表达式,再利用find和length函数。
提示1:
步骤:
用冒号表达式把[100,999]之间的整数放在一个向量里(如A);
用mod求得一个向量(如B),使A中能被21整除的数在B中对应位置为1,B的其它位置为0;
用find求得B中不为0的元素的序号,放入一个向量中(如K);
显示A中对应K的元素;%即能被21整除的数
用length显示K的元素个数。
%即能被21整除的数的个数
4.2建立一个字符串向量,删除其中的大写字母提示
提示:
利用find函数和空矩阵。
提示1:
利用find函数和空矩阵。
注意使用关系运算、逻辑运算。
注意!
本题中大写字母所在位置是随机的,要用关系运算和逻辑运算,以及find找到它们所在位置的序号。
提示2:
四、教程:
第2章MATLAB数据及其运算
2.1MATLAB数据的特点p17
矩阵
是MATLAB最基本、最重要的数据对象。
MATLAB的大部分运算或命令都是在矩阵(复数域上)运算的意义下执行的。
标量对应仅含一个元素的矩阵。
数值数据
双精度数占64位,转换函数double
单精度数占32位,转换函数single
带符号整数转换函数int8,int16,int32
无符号整数转换函数uint8,uint16,uint32
字符数据转换函数char
结构体类型(Structure)
单元类型(Cell)
逻辑型非0为true,0为false
2.2变量及其操作
2.2.1变量与赋值
1.变量命名
Ø以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。
Ø区分字母的大小写。
MATLAB提供的标准函数名以及命令名必须用小写字母。
2.赋值语句
(1)变量=表达式
(2)表达式(值赋给预定义变量ans)
其中,表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。
例2.1计算表达式的值p18
将
的计算结果赋给变量x,然后显示出结果。
>>x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i)
x=
1.1980+0.6572i
其中,pi和i都是MATLAB预先定义的变量,分别代表圆周率π和虚数单位。
3.预定义变量p18
表2.1常用的预定义变量及其含义
预定义变量
含义
ans
eps
pi
i,j
inf,Inf
NaN,nan
nargin
nargout
realmax
realmin
lasterr
lastwar
默认赋值变量
机器零阈值2.2204e-016
π近似值
虚数单位
无穷大,如1/0的结果
非数,如0/0,inf/inf的结果
函数输入参数个数
函数输出参数个数
最大正实数
最小正实数
存放最新的错误信息
存放最新的警告信息
预定义变量有特定的含义,应尽量避免重新赋值。
i=2%对预定义变量重新赋值
2*i
cleari%恢复预定义变量
2*i
i=
2
ans=
4
ans=
0+2.0000i
2.2.2变量的管理p19
1.内存变量的显示与删除
显示工作空间中驻留的变量名清单及信息命令:
who%显示变量名清单
whos%显示变量名清单及信息
删除工作空间中的变量命令:
clear变量名
工作空间窗口专门用于内存变量的管理。
在该窗口中显示所有内存变量的属性。
●当选中某些变量后,再单击Delete按钮,将删除这些变量。
●双击变量后,将进入变量编辑器。
可以观察变量中的具体元素,也可修改具体元素。
●输入较大矩阵时,可采用变量编辑器。
2.内存变量文件
用MAT文件可把当前工作空间中的一些有用变量长久地保留下来,扩展名是.mat。
MAT文件的生成和装入,常用格式为:
save文件名[变量名表][-append][-ascii]
load文件名[变量名表][-ascii]
●文件名可带路径,不需带扩展名.mat,默认对.mat文件进行操作。
●变量名表变量名以空格分隔。
省略时,保存或装入全部变量。
●-ascii选项使文件以ASCII格式处理,省略时以二进制格式处理。
●-append选项使变量追加到MAT文件中。
2.2.3数据的输出格式p20
用十进制数表示一个常数,可采用日常记数法和科学记数法。
一般情况下,内部每一个数据元素都用双精度数表示和存储。
设置或改变数据输出格式
format命令的格式为:
format格式符
格式符决定数据的输出格式
表2.2控制数据输出格式格式符及含义
格式符
含义
short
(默认)
小数点后4位,不超过7位有效数字。
大于1000的实数用5位有效数字的科学记数法
long
15位有效数字
shorte
5位有效数字科学记数法
longe
15位有效数字科学记数法
shortg
从short和shorte选择最佳方式
longg
从long和longe选择最佳方式
rat
近似有理数表示
hex
十六进制表示
+
正数、负数、零分别用+、-、空格表示
bank
银行格式,元、角、分表示
compact
输出变量之间无空行
loose
输出变量之间有空行
可用Helpformat查询
例输出格式format
>>4/3%当前输出格式
ans=
1.3333
>>formatlong%15位有效数字形式输出
>>4/3
ans=
1.333333333333333
>>formatrat%近似有理数表示
>>4/3
ans=
4/3
>>formatcompact%输出变量之间没有空行
>>4/3
ans=
4/3
>>formatloose%输出变量之间有空行
>>4/3
ans=
4/3
>>formatshort%short为默认输出格式
2.3矩阵的表示p21
表矩阵操作函数及其含义
函数名
含义
eye
ones
linspace
sub2ind
ind2sub
size
length
reshape
end
[]
单位矩阵
全1矩阵
生成行向量
下标转换成序号
序号转换成下标
给出矩阵的行数和列数
给出矩阵行数和列数中较大者
矩阵重排
预定义变量,某一维末尾下标
空矩阵
2.3.1矩阵的建立
1.直接输入法
从键盘直接输入矩阵的元素。
方法如下:
Ø将矩阵的元素用方括号括起来,输入元素;
Ø同一行的元素间用空格或逗号分隔;
Ø不同行的元素间用分号(或回车)分隔。
例
>>A=[1,2,3;456;7,89]
A=
123
456
789
2.利用M文件建立矩阵
对于比较大且复杂的矩阵,可专门建立一个M文件。
例2.2利用M文件建立矩阵
(1)启动文本编辑器,输入:
MYMAT=[101,102,103,104,105;
201,202,203,204,205;
301,302,303,304,305]
(2)存盘(文件名为mymatrix.m)。
(3)在命令窗口中输入mymatrix,即运行该M文件,就建立一个名为MYMAT的矩阵。
3.建立大矩阵(矩阵拼接)
大矩阵可由方括号中的小矩阵或向量建立。
>>A=[1,2;3,4]
A=
12
34
>>eye
(2)
ans=
10
01
>>ones
(2)
ans=
11
11
>>C=[A,eye
(2),ones
(2),A]
C=
12101112
34011134
2.3.2冒号表达式
用冒号表达式产生行向量,一般格式:
e1:
e2:
e3
其中e1为初始值,e2为步长,e3为终止值上限。
用linspace函数产生行向量。
调用格式:
linspace(a,b,n)
其中a和b是第一个和最后一个元素,n是元素总数。
2.3.3矩阵的拆分
1.矩阵元素
通过下标引用矩阵的元素,例
>>A=[1,2,3;4,5,6]
A=
123
456
>>A(2,3)
ans=
6
>>A(2,2)=22;
>>A
A=
123
4226
>>A(4,5)=10;
>>A
A=
12300
422600
00000
000010
采用矩阵元素的序号来引用矩阵元素。
元素的序号是相应元素在内存中的排列顺序。
在MATLAB中,矩阵按列存储,先第一列,再第二列,依次类推。
>>A=[1,2,3;4,5,6]
A=
12
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验01 MATLAB运算基础第2章 实验 01 MATLAB 运算 基础