MATLAB使用教程.docx
《MATLAB使用教程.docx》由会员分享,可在线阅读,更多相关《MATLAB使用教程.docx(31页珍藏版)》请在冰豆网上搜索。
![MATLAB使用教程.docx](https://file1.bdocx.com/fileroot1/2023-2/28/dcef9b03-56a3-4e8b-b607-46776e46205b/dcef9b03-56a3-4e8b-b607-46776e46205b1.gif)
MATLAB使用教程
目录
第1章MATLAB概述1
1.1熟悉MATLAB开发环境1
1.2使用Notebook2
1.3使用MATLAB的帮助3
1.4自我练习3
第2章MATLAB基本运算4
2.1向量的运算4
2.2矩阵和数组的运算4
2.3字符串和日期型数组的操作5
2.4多项式的运算6
2.5元胞数组和结构体6
2.6自我练习7
第3章数据的可视化8
3.1绘制二维曲线并标注文字8
3.2在同一窗口中绘制多条曲线8
3.3绘制特殊图形9
3.4绘制三维图形10
3.5自我练习11
第4章符号运算12
4.1符号表达式的创建和算术运算12
4.2符号表达式的运算12
4.3符号表达式的微积分和积分变换13
4.4符号方程的求解14
4.5自我练习14
第5章程序设计和M文件15
5.1使用函数调用并调试程序15
5.2使用M脚本和M函数文件15
5.3使用函数句柄和匿名函数进行数值分析17
5.4自我练习17
第1章MATLAB概述
1.1熟悉MATLAB开发环境
1.MATLAB的启动
⑴单击Windows的开始菜单,选择“程序”→“MATLAB”→“R2006b”→“MATLABR2006b”
⑵单击桌面上的MATLAB快捷方式图标
2.MATLAB的窗口布局
⑴使命令窗口独立:
①选择菜单“Desktop”→“UndockCommandWindow”
②单击“CommandWindow”右上角的展开按钮
③单击还原按钮可使命令窗口恢复到原位置
⑵创建不同的新文件
3.使用命令窗口
a=[12;34],b=1/3,c=a*b,d='hello',e=d+1
a=12
34
b=0.3333
c=0.33330.6667
1.00001.3333
d=hello
e=105102109109112
(1)使用标点符号来修改命令行
%添加注释
c=a+b%c为矩阵a+b的和
c=1.33332.3333
3.33334.3333
;不显示计算结果
a=[12;34];
…续行
d='hell...
o'
?
?
?
Error:
AMATLABstringconstantisnotterminatedproperly.
,用作数组元素的分隔
a=[12;34]
a=12
34
(2)使用操作键
↑:
向前调回已输入过的命令;
↓:
向后调回已输入过的命令;
Esc:
清除当前行的全部内容。
(3)使用format设置数值的显示格式
formatlong:
显示15位长格式
formatlong;c
c=0.3333333333333330.666666666666667
1.0000000000000001.333333333333333
formatrat:
显示近似有理式格式
formatrat;c
c=1/32/3
14/3
(4)设置命令窗口的外观
①选择“File”→“Preference”
②选择对话框左栏的“Fonts”,将字体设置为宋体
③单击对话框左栏的“CommandWindow”,设置“NumericFormat”栏为“formatshort”和“Numericdisplay”为“compact”
(5)使用控制命令
clc%清空命令窗口的显示内容
beep%发出beep的声音
4.历史命令窗口
⑴创建M文件:
在历史命令窗口中选择前5行命令,单击鼠标右键出现快捷菜单“CreateM-File”,则出现M文件编辑/调试器窗口,窗口中已有所选择的命令行,在文件中添加前两行注释:
%sy1_1
%基本操作
保存该文件名为“sy1_1.m”
⑵创建快捷方式:
选择两行命令
formatlong;c
单击鼠标右键出现快捷菜单选择“CreateShortcut”,则会出现“ShortcutEditor”对话框。
在“Label”框中输入快捷方式的名称,单击Save按钮。
5.工作空间窗口
⑴创建新变量:
单击工作空间窗口工具栏的新建变量按钮,或选择菜单“File”→“New”→“Variable”
⑵保存变量:
在工作空间中选择需要保存的变量名,然后单击保存按钮,出现“SavetoMAT-File”对话框,保存为MAT文件“sy1_1.mat”
⑶使用“who”和“whos”命令查看各变量
⑷使用“clear”命令删除变量b
⑸使用菜单“View”→“Choosecolumns”→“Mean”查看a各列的平均值
6.M文件编辑/调试器窗口
⑴创建空白M文件:
单击新建图标或选择菜单“File”→“New”→“M-file”
⑵创建单元:
选择菜单“Cell”→“EnabledCellMode”,出现单元工具栏,使用“%%”创建单元。
单击Ctrl+Enter可以运行光标所在单元。
7.当前目录浏览器窗口
⑴打开文件:
在当前目录浏览器窗口右击文件“sy1_1.m”,选择“Open”
⑵运行M文件:
用鼠标右击“sy1_1.m”文件,在快捷菜单中选择“Run”
⑶查找文件:
单击查找按钮,出现查找文件对话框
⑷将文件夹以图示显示
⑸使用what,dir,which命令查看当前目录信息
⑹使用type命令查看“sy1_1.m”文件的内容
8.修改搜索路径
单击菜单“File”→“SetPath”,打开设置路径对话框
9.数组编辑器窗口
⑴编辑变量:
双击打开变量a,在图中添加第一行第三列为6,则第二行第三列自动添0
⑵数据绘图:
方法一:
使用菜单,在工作空间浏览器窗口和数组编辑器窗口中都可以选择“Graphics”菜单,在下拉菜单中选择“PlotallColumns”。
方法二:
使用工具栏,选择工具栏中的绘图按钮,在选项中选择要绘制的曲线类型。
1.2使用Notebook
1.安装Notebook
notebook–setup
2.在Word中显示MATLAB命令
⑴定义输入单元:
选择1、2行命令,然后选择菜单“Notebook”→“DefineInputCell”定义输入单元;选择后3行命令,选择菜单“Notebook”→“EvaluateCell”,直接定义输入单元并运行显示输出单元。
a=[12;34],b=1/3,c=a*b,d='hello',e=d+1
a=12
34
b=1/3
c=1/32/3
14/3
d=hello
e=105102109109112
⑵定义输入单元组:
选择两个输入单元后,选择菜单“Notebook”→“GroupCells”,就将两个输入单元组成单元组。
1.3使用MATLAB的帮助
1.使用帮助命令
help
helpsin
lookforsin
2.使用帮助导航/浏览器窗口
⑴通过“Contents选项”
⑵通过“Index”面板查找
⑶通过“Search”面板查找
3.使用Demos
demomatlabgraphics
1.4自我练习
1)在命令窗口中输入以下命令并使用who和whos命令查看变量信息,在数组编辑器窗口中查看变量内容,并用format将x和y显示为指数形式。
x=0:
2:
10,y=sqrt(x)
x=0246810
y=01393/98522158/8813363/1189721/228
2)在命令窗口中输入以下命令,将两个变量保存到exe1.mat文件中,并将两行命令保存为exe1.m文件,使用which命令查看文件信息,将exe1.m文件设置到搜索路径后,在命令窗口中运行exe1文件。
a=[12;34],b=[11;22]
a=12
34
b=11
22
第2章MATLAB基本运算
2.1向量的运算
1.行向量的创建
t1=0:
10;t2=linspace(0,20,21);
2.行向量的计算
formatshort;ft1=20*exp(-0.5*t1).*sin(2*t1)
ft1=011.0303-5.5682-1.24692.6779-0.8931-0.53430.5983-0.1055-0.16690.1230
3.关系运算
ff=ft1>0,ft=ft1.*ff
ff=01001001001
ft=011.0303002.6779000.5983000.1230
4.逻辑运算
tt=(t1<=pi)|((t1>=2*pi)&(t1<=3*pi)),ft=ft1.*tt
tt=11110001110
ft=011.0303-5.5682-1.24690000.5983-0.1055-0.16690
2.2矩阵和数组的运算
1.创建矩阵
a=magic(4),b=eye(3)
a=162313
511108
97612
414151
b=100
010
001
2.生成子矩阵块
c=a(1:
3,1:
3),c=a([1:
3;5:
7;9:
11])'
l1=logical([111]);l2=logical([111]);a(l1,l2)
c=1623
51110
976
c=1623
51110
976
ans=1623
51110
976
3.矩阵的函数运算
det(a),rot90(b),inv(c),inv(b),max(a)
ans=0
ans=001
010
100
ans=0.0294-0.06620.0956
-0.4412-0.50741.0662
0.47060.6912-1.2206
ans=100
010
001
ans=16141513
4.矩阵和数组的算术运算
b*c,b.*c,b/c,b./c,c^2,c.^2,exp(b),expm(b)
ans=1623
51110
976
ans=1600
0110
006
ans=0.0294-0.06620.0956
-0.4412-0.50741.0662
0.47060.6912-1.2206
ans=0.062500
00.09090
000.1667
ans=2937586
225201185
233137133
ans=25649
25121100
814936
ans=2.71831.00001.0000
1.00002.71831.0000
1.00001.00002.7183
ans=2.718300
02.71830
002.7183
5.复数矩阵
d=b+c*i,abs(d),d',d.'
d=1.0000+16.0000i0+2.0000i0+3.0000i
0+5.0000i1.0000+11.0000i0+10.0000i
0+9.0000i0+7.0000i1.0000+6.0000i
ans=16.03122.00003.0000
5.000011.045410.0000
9.00007.00006.0828
ans=1.0000-16.0000i0-5.0000i0-9.0000i
0-2.0000i1.0000-11.0000i0-7.0000i
0-3.0000i0-10.0000i1.0000-6.0000i
ans=1.0000+16.0000i0+5.0000i0+9.0000i
0+2.0000i1.0000+11.0000i0+7.0000i
0+3.0000i0+10.0000i1.0000+6.0000i
2.3字符串和日期型数组的操作
1.字符串合并
s1='s^2',s2='s+1',ss=strcat(s1,'+',s2)
s1=s^2
s2=s+1
ss=s^2+s+1
2.执行字符串
s=5,eval(ss)
s=5
ans=31
3.将字符串逆序排列
s2='hello';n=length(s2),ss2=[s2(n),s2(n-1),s2(n-2),s2(n-3),s2(n-4)]
n=5
ss2=olleh
4.字符串与数值的转换
abs(s2)
ans=104101108108111
5.将日期以不同格式显示
d=datestr('5/1/2007'),d1=datenum(d),
p=['Thisyearis',num2str(year(d))]
d=01-May-2007
d1=733163
p=Thisyearis2007
2.4多项式的运算
1.计算多项式的乘积
p1=[11];p2=[145];p=conv(p1,p2)
p=1595
2.计算多项式的根并进行部分分式展开
pp=roots(p2),[rr,pr,kr]=residue(p1,p2)
pp=-2.0000+1.0000i
-2.0000-1.0000i
rr=0.5000+0.5000i
0.5000-0.5000i
pr=-2.0000+1.0000i
-2.0000-1.0000i
kr=[]
3.计算多项式的微分
pd=polyder(p),polyval(p,3)
pd=3109
ans=104
4.多项式的拟合
G=[1-5-17129-180];x=0:
20;y=polyval(G,x);
y0=0.1*randn(1,21);y1=y+y0,G1=polyfit(x,y1,4)
y1=1.0e+005*
-0.0018-0.0007-0.0001-0.00000.00000.00040.00200.00580.01300.02520.04410.07170.11020.16200.22990.31680.42590.56060.72450.92161.1560
G1=1.0000-4.9997-17.0030129.0151-180.0143
5.多项式的插值
s=interp1(x,y,5.5),s1=interp1(x,y1,5.5)
s=119
s1=118.9830
2.5元胞数组和结构体
1.创建结构体
student
(1)=struct('name','John','Id','20030115','scores',[85,96,74,82,68])
student
(2)=struct('name','Rose','Id','20030102','scores',[95,93,84,72,88])
student(3)=struct('name','Billy','Id','20030117','scores',[72,83,78,80,83])
student=1x3structarraywithfields:
name,Id,scores
student=1x3structarraywithfields:
name,Id,scores
student=1x3structarraywithfields:
name,Id,scores
2.显示结构体内容
all_s=[student
(1).scores;student
(2).scores;student(3).scores]
average_s=mean(all_s)
all_s=8596748268
9593847288
7283788083
average_s=84.000090.666778.666778.000079.6667
3.修改结构体元素内容
student=setfield(student,{2},'scores',{2},73)
student
(2).scores
(2)=73
student
(2)
student=1x3structarraywithfields:
{name,Id,scores
student=1x3structarraywithfields:
name,Id,scores
ans=name:
'Rose'
Id:
'20030102'
scores:
[9573847288]
4.将结构体转换为元胞数组
student_cell=struct2cell(student)
student_cell(:
:
1)=
{'John','20030115',[1x5double]}
student_cell(:
:
2)=
{'Rose','20030102',[1x5double]}
student_cell(:
:
3)=
'Billy','20030117',[1x5double]
5.创建元胞数组
average={'平均成绩',average_s}
average='平均成绩'[1x5double]
average
(1)={'平均成绩'}
average='平均成绩'[1x5double]
average
(2)={average_s}
average='平均成绩'[1x5double]
average{1}='平均成绩';
average{2}=average_s
average='平均成绩'[1x5double]
2.6自我练习
1)将实验2中的魔方阵a按照列降序排列,并计算其平均值。
2)将实验3中的字符串s1='s^2',s2='s+1'进行比较,并将s1和s2构成一个矩阵,然后将该矩阵中的字符's'替换成'x'。
3)根据实验4的p=(s+1)(s2+4s+5),计算p(x)=0时的根,并计算p(x)除以(s+1)的结果。
第3章数据的可视化
3.1绘制二维曲线并标注文字
1.使用plot函数绘制曲线
t=0:
0.1:
10;y1=0.01*t.^2;y2=exp(-t).*sin(2*t);plot(t,y1,'r:
')
holdon;plot(t,y2,'b-*');y2max=max(y2);plot([0,10],[y2max,y2max])
2.设置坐标轴和分隔线
gridon;axis([0,10,-1,1])
3.添加图形文字标注
title('y_{1}=0.1t^{2}和y_{2}=e^{-t}sin(2t)曲线图')
legend('y1','y2',4)
annotation('textarrow',[0.5,0.5],[(2-y2max)/2+0.1,(2-y2max)/2],'string',y2max)
ans=254.0645
4.使用鼠标获取图形中的数据
[x,y]=ginput
(1)
x=3.8754
y=0.2772
5.使用图形窗口
①添加曲线②添加标注③修改图形④隐藏曲线⑤添加子图⑥使用“Tool”菜单
3.2在同一窗口中绘制多条曲线
1.第一个子图绘制图形
t=0:
0.1:
2*pi;subplot(311);plot(sin(t),cos(t));axisequal
2.第二个子图绘制复数数组的图形
z=t+2*cos(t)*i;subplot(3,1,2);plot(z,'r:
');axis([02*pi-22])
3.第三个子图绘制矩阵的图形
subplot(3,1,3);[x,y]=meshgrid(t);z=sin(x).*cos(y);plot(t,z);axisimage
4.保存图形文件
3.3绘制特殊图形
1.使用极坐标绘制螺旋线
figure
(1);t=0:
0.1:
8*pi;polar(t,t)
2.绘制离散数据的火柴杆图
figure
(2);t=0:
0.5:
20;y=exp(-0.1*t).*sin(t);stem(t,y)
3.绘制向量的罗盘图
figure(3);thera=[0pi/6pi/4pi/3pi/2pipi*2/3];
rho=[110515202515];z=rho.*exp(i*thera);compass(z)
4.使用绘图编辑工具栏
3.4绘制三维图形
1.绘制三维饼形图
x=[1231];[xmax,n]=max(x);explode=zeros(1,4);
explode(n)=1;pie3(x,explode)
2.使用三维网线图绘制平面
x=-5:
0.5:
5;y=0:
0.5:
4;[X,Y]=meshgrid(x,y);Z=5*ones(size(X));
mesh(X,Y,Z);colormap('hot');colorbar
3.绘制三维表面图
x=-4:
4;[X,Y]=meshgrid(x);Z=5*X.^2-Y.^2;surfc(X,Y,Z);view([60,60])
4.使用图形窗口设置属性
1)使用照相工具栏
2)修改索引色图
3.5自我练习
1)使用plot函数分别绘制矩阵A=[1234;1010;1223]、A'、A(:
2)和A(1,:
)的数据图形。
2)在同一图形窗口中绘制函数
及其包络线图形,t的范围为0~2。
3)绘制实验4中z=5x2-y2的三维曲线图。
第4章符号运算
4.1符号表达式的创建和算术运算
1.创建符号常量和变量
a=sym(1/3);b=sym('thera')