matlab上机实习报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab上机实习报告
学院
班级
学号
姓名
指导老师:
2011年12月25日
第十六周我们进行了本学期第二个实习部分-Matlab上机实习。
时间过得很快,一周的时间转眼间就过去了。
通过实习我们对Matlab有了基本的了解。
本次实习一星期,共有五个部分。
分别是:
一,Matlab基本操作;
二,数值数组及其运算;
三,Matlab图形绘制基础;
四,SIMULINK仿真基础;
五,句柄图形和图形用户界面制作。
实习内容一Matlab基本操作
1,实习目的:
·掌握Matlab的启动和退出;
·熟悉Matlab的命令窗口;
·熟悉其他常用窗口和工具栏;
2,对本软件有了初步认识后,接下来就开始按照指导书要求做一些训练了
在指令窗中输入下面一段程序,功能是::画出衰减振荡曲线y=(e-t/3)sin3t及其他的包络线y0=(e-t/3)。
T的取值范围是。
t=0:pi/50:4*pi;
y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,’-r’,t,y0,’:b’,t,-y0,’:b’)
观察输出结果
3,通过下拉菜单File:Preferences改变设置指令窗中的字体、颜色等。
如:数据显示格式的设置:
Format short 小数点后四位(缺省情况),如显示p为3.1416。
Format long 小数点后十四位,如显示p为3.14159265358979。
Formant bank 小数点后两位,如显示p为3.14。
Format short e 小数点后四位科学记数法,如显示p为3.1416e+000。
Format long e 小数点后十四五位科学记数法,如显示p为3.141592653589793e+000。
在指令窗中键入y1=2*sin(0.3*pi)/(1+sqrt(5))
然后利用回调指令计算y2=2*y1*cos(0.3*pi)/(1+sqrt(5))
y1 =
0.5000
y2 =
0.1816
4,了解软件中的一些功能和命令。
包括:
(1)熟悉历史指令窗(Command History) ;
(2)熟悉当前目录浏览器(Current Diretory);
(3)熟悉工作空间浏览器(Workspace Browser);
(4)熟悉数组编辑器(Array Editor);
(5)熟悉脚本文件编辑器及运行一个简单的程序;
(6)一些指令如:
clear 清除当前工作区中的所有变量
clc 清除指令窗中内容(未清除当前工作区中的变量)
clf 清除图形窗口
cd 设置当前工作目录
exit,quit 退出Matlab
(7)设置文件存放路径。
(8)了解Matlab帮助系统。
实习内容二数值数组及其运算
1,实习目的
·掌握一维数组的创建和寻访;
·掌握二维数组的创建和寻访;
·掌握的Matlab矩阵和数组的运算;
·熟悉Matlab关系操作和逻辑操作;
2,实习内容和步骤
(1)常量与变量
变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。
(2)数值型向量(矩阵)的输入
任何矩阵(向量),可以直接按行方式输入每个元素;同一行中的元素用
逗号或者空格符来分隔行行之间用分号分隔。
所有元素处于[ ]中
(3)符号向量(矩阵)的输入
a.用函数sym定义符号矩阵:
函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以
是任意的符号和表达式,没有长度限制,只需将方括号置于单引号中。
b.用函数sym定义符号矩阵
先定义矩阵中的每一个元素为一个符号变量,然后像普通矩阵一样输入
符号矩阵。
(4)数组(矩阵)的点运算
运算符:+(加)、-(减)、./(右除)、.\(左除)、.^(乘方),数组元素
之间直接进行数值运算。
(5)矩阵的运算
运算符:+(加)、-(减)、*(乘)、./(右除)、.\(左除)、^(乘方)、’(转
置)等;
常用函数:det(行列式)、inv(逆矩阵)、rank(秩)、eig(特征值,特征向
量)、rref(化矩阵为行最简形)
如:A=[2 0 -1; 1 3 2];
B=[1 7 -1;4 2 3;2 0 1];
M=A*B % 矩阵A与B按矩阵运算相乘
det_B=det(B) % 矩阵A的行列式
rank_A=rank(A) % 矩阵A的秩
inv_B=inv(B) % 矩阵B的逆矩阵
[V,D]=eig(B) % 矩阵B的特征值矩阵V与特征向量构成的矩阵D
X=A/B % A/B = A*B-1,即XB=A,求X
M =
0 14 -3
17 13 10
det_B =20
rank_A = 2
inv_B =
0.1000 -0.3500 1.1500
0.1000 0.1500 -0.3500
-0.2000 0.7000 -1.3000
V =
-0.7094 0.7444 0.7444
-0.6675 -0.3599 + 0.0218i -0.3599 - 0.0218i
-0.2263 -0.5587 - 0.0607i -0.5587 + 0.0607i
D =
7.2680 0 0
0 -1.6340 + 0.2861i 0
0 0 -1.6340 - 0.2861i
X =
0.4000 -1.4000 3.6000
0.0000 1.5000 -2.5000
(6)在指令窗中输入
x=[2 3 pi/2 9] ;x=[2,3,pi/2,9] 观察结果是否一样?
x=[2 3 pi/2 9]
y=[2,3,pi/2,9]
x =
2.0000
3.0000 1.5708 9.0000
y =
2.0000
3.0000 1.5708 9.0000
(7)要在闭区间[0,2]上产生50个等距采样的一维数组,试用两种不同的指令实现,要寻访1到5个元素如何实现;寻访7到最后一个元素如何实现;要寻访2,6,8个元素如何实现;寻访大于2的元素如何实现。
A=[0:pi/25:pi*2]
B=[A(1) A(2) A(3) A(4) A(5)]
C=[A(7):pi/25:A(51)]
A(find(A>2))
A =
0 0.1257 0.2513 0.3770 0.5027
0.6283 0.7540 0.8796 1.0053 1.1310
1.2566 1.3823 1.5080 1.6336 1.7593
1.8850
2.0106 2.1363 2.2619 2.3876
2.5133 2.6389 2.7646 2.8903
3.0159
3.1416 3.2673 3.3929 3.5186 3.6442
3.7699 3.8956
4.0212 4.1469 4.2726
4.3982 4.5239 4.6496 4.7752 4.9009
5.0265 5.1522 5.2779 5.4035 5.5292
5.6549 5.7805 5.9062
6.0319 6.1575
6.2832
B =
0 0.1257 0.2513 0.3770 0.5027
C =
0.7540 0.8796 1.0053 1.1310 1.2566
1.3823 1.5080 1.6336 1.7593 1.8850
2.0106 2.1363 2.2619 2.3876 2.5133
2.6389 2.7646 2.8903
3.0159 3.1416
3.2673 3.3929 3.5186 3.6442 3.7699
3.8956
4.0212 4.1469 4.2726 4.3982
4.5239 4.6496 4.7752 4.9009
5.0265
5.1522 5.2779 5.4035 5.5292 5.6549
5.7805 5.9062
6.0319 6.1575 6.2832
ans =
2.0106 2.1363 2.2619 2.3876 2.5133
2.6389 2.7646 2.8903
3.0159 3.1416
3.2673 3.3929 3.5186 3.6442 3.7699
3.8956
4.0212 4.1469 4.2726 4.3982
4.5239 4.6496 4.7752 4.9009
5.0265
5.1522 5.2779 5.4035 5.5292 5.6549
5.7805 5.9062
6.0319 6.1575 6.2832
(8)在指令窗中输入A=[1 2 3;4 5 6] 观察结果;分别用“全下标”和“单下标”来寻访第2行第1列的元素,并说明二维数组元素的存储顺序。
>> a=[1 2 3;4 5 6]
a =
1 2 3
4 5 6
>> a(2,1)
ans =
4
>> a(2)
ans =
4
(9)在指令窗中输入B =【1,2,3;6,7,8】,并计算A.*B;和A*B 并说明矩阵相乘和数组相乘的区别。
a=[1 2 3;4 5 6];b=[1 2 3;6 7 8];
m=a.*b
n=a*b
m=
1 4 9
24 35 48
n =
14 44
32 107
(11)在时间区间]10,0[中,绘出t e y t 2cos 15.0--=曲线。
t=linspace(0,10,1000);
e=exp(-0.5*t);
d=cos(2*t);
y=1-e.*d;
plot(t,y);
(12)写出生成如图2-1所示波形的MA TLAB脚本M文件。
图中虚线为正弦波,要求它的负半波被置零,且在2/3处被削顶。
x=linspace(-1,10,1000);
y=sin(x);
plot(x,y);
hold on;
x=linspace(-1,10,1000);
y=sin(x);
top_value=sqrt(3)/2;
bottom_value=0;
pos1=find(y>=top_value);
y(pos1)=top_value;
pos2=find(y<=bottom_value);
y(pos2)=bottom_value;
limitation=[min(x),max(x),-1,1]; axis(limitation);
plot(x,y);
(13)字符串数组
clear
a=2;
w=3;
t=0:0.01:10;
y=exp(-a*t).*sin(w*t);
[y_max,i_max]=max(y);
t_text=['t=',num2str(t(i_max))];
y_text=['y=',num2str(y_max)];
max_text=char('maximum',t_text,y_text);
tit=['y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)'];
plot(t,zeros(size(t)),'k')
hold on
plot(t,y,'b')
plot(t(i_max),y_max,'r.','MarkerSize',20)
text(t(i_max)+0.3,y_max+.05,max_text)
title('tit'),xlabel('t'),ylabel('y'),holdoff
实习内容三Matlab图形绘制基础一、实习目的
(1)进一步熟悉M文件的调试过程
(2)熟练掌握Matlab二维曲线的绘制
(3)掌握图形的修饰
二、实习内容
1. 用plot绘制y=sinx/x的图形
3.1用plot绘制y=sinx/x的图形
x=-2*pi:pi/10:2*pi;
y=sin(x)./x; %准备数据
plot(x,y) %用plot作图
3.2 x=-2*pi:pi/10:2*pi;
x=x+(x==0)*eps;
y=sin(x)./x; %(准备数据,处理分母零点)) plot(x,y)
3.3画出()π,0包罗线
t=(0:pi/100:pi);
y1=sin(t);y=-sin(t);
y2=sin(t).*sin(9*t);t3=pi*(0:9)/9;
y3=sin(t3).*sin(9*t3);
plot(t,y1,'r:',t,y,'r:',t,y2,'b',t3,y3,'bo'),axis([0,pi,-1,1]) gtext('该点数值x')
(2) ezplot用作图:
ezplot(‘sin(x)/x’,[-4*pi,4*pi])
(3)fplot用作图:
fplot(‘sin(x)/x’,[-2*pi,2*pi])
2、基本绘图控制参数:设置线型、线色、数据点形
(1)、曲线点型、线色允许设置值
(2
(3
(4)、图形标注:坐标轴名(label)、图形标题(title)、图例(legend)、图形说明(text,gtext),格式如下:
title(‘s’) 书写图形标题
xlabel(‘s’) 横坐标轴名
ylabel(‘s’) 纵坐标轴名
legend(‘s1’,’s2’,…) 绘制曲线所用线型、色彩、或数据点型图例
text(x1,y1,’s’) 在图面(x1,y1)坐标处书写字符注释
gtext(‘s’) 用鼠标选择书写字符注释的位置
(5)、常用坐标控制命令
hold on 使当前轴及图形保持而不被刷新,准备接受此后将绘制的新曲线。
hold off 使当前轴及图形不再具备不被刷的性质。
hold 是否具备不被刷的性质的双向开关。
subplot(m,n,k) 图形窗中有m×n幅子图,k是子图的编号。
3、三维曲线绘图
(1)基本命令:
plot3(x,y,z,’s’) % s为线色、线形、点形
plot3(x1,y1,z1,’s1’,…. xn,yn,zn,’sn’)
例3.5
t=-2*pi:0.01:2*pi;
x=2*cos(t);y=2*sin(t),z=3*t; %(准备数据)
plot3(x,y,z,’r:’); %(用plot3作图)
(2)三维曲面作图
1)三维网格命令(mesh)
例3.6 x=-1:0.05:1;y=x;
[x,y]=meshgrid(x,y);
z=x.^2+2*y.^2;
mesh(x,y,z)
运行结果如下图:
2)三维表面命令surf 例3.7
x=-1:0.05:1;y=x;
[x,y]=meshgrid(x,y);
z=x.^2+2*y.^2;
surf(x,y,z)
运行结果如下图:
3)基本三维命令的几个改进命令
meshc(带等高线的网线图)
surfc(带等高线的曲面图)
4)、三维视图的可视效果控制
view, rotate3d, rotate
5)、图形的透视(hidden)
图形颜色的遮掩shading。
hidden on 使图形消隐(透视)。
hidden off 关闭消隐(此为默认状态)。
shading 用于曲面颜色不匀时的均衡处理,使用格式为。
shading interp 对网眼内采用匀色处理,使色彩自然连贯。
shading faceted 对网眼颜色不做特殊处理,但加深网线黑色,这种格式有较强的表现力,是默认格式。
4、球面(sphere)及柱面(cylinder)的表达
(1)sphere(n)绘制分格线条数为n的单位球面。
例 3.8 sphere(50) %绘制分格线条数为50的单位球面,运行结果如下图
(2)cylinder(r,n)绘制半径为r分格线条数为n的旋转柱面(曲面),纵坐标为0到1。
R为母线的描述。
例3.9 cylinder(5,30),运行结果如图3-7。
(3)[x,y,z]= sphere(n), [x,y,z]= cylinder(r,n),分别为读取球面及柱面的数据。
5、特殊图形:直方图hist、饼图pie、条形图bar、矢量图feather、等高线contour。
三、实习步骤
(1)plot指令的使用
在commmand窗口键入以下指令:
X=1:10
Y=[1 2 3 4 5 6 7 8]
Z=1:-1:-10
Plot(x)
Plot(y)
Plot(x,z)
观察指令窗及图形窗中的结果。
(2)subplot指令的使用;采样点数对绘图的影响的理解;title、axis指令的使用
键入所以下指令:
t1=(0:11)/11*pi;
y1=sin(t1).*sin(9*t1);
t2=(0:100)/100*pi;
y2=sin(t2).*sin(9*t2);
subplot(2,2,1),plot(t1,y1,'r.'),axis([0,pi,-1,1]),title('子图(1)')
subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图(2)')
subplot(2,2,3),plot(t1,y1,t1,y1,'r.')
axis([0,pi,-1,1]),title('子图(3)')
subplot(2,2,4),plot(t2,y2)
axis([0,pi,-1,1]),title('子图(4)')
观察指令窗及图形窗中的结果。
(3)图形交互指令的使用
①、在(2)的四个子图上用ginput指令分别获取其峰值;
②、在(2)的四个子图中的子图1上用gtext指令将“不太完整的离散图
形”字符串放置到图形上。
在子图2上用gtext指令将“完整的离散图形”字符串放置到图形上。
在子图3上用gtext指令将“失真的连续图形”字符串放置到图形上。
在子图4上用gtext指令将“正确的连续图形”字符串放置到图形上。
t1=(0:11)/11*pi;
y1=sin(t1).*sin(9*t1);
t2=(0:100)/100*pi;
y2=sin(t2).*sin(9*t2);
subplot(2,2,1),plot(t1,y1,'r.'),axis([0,pi,-1,1]),title('子图(1)'),gtext('不太完整的离散图')
subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图(2)'),gtext('完整的离散图形')
subplot(2,2,3),plot(t1,y1,t1,y1,'r.'),axis([0,pi,-1,1]),title('子图(3)'),gtext('是真的连续图形')
subplot(2,2,4),plot(t2,y2),axis([0,pi,-1,1]),title('子图(4)'),gtext('正确的连续图形')
(4)其它绘图指令的使用及精细指令的使用
键入所以下指令:
clf;t=6*pi*(0:100)/100;y=1-exp(-0.3*t).*cos(0.7*t);
tt=t(find(abs(y-1)>0.05));ts=max(tt);
plot(t,y,'r-','linewidth',3)
axis([-inf,6*pi,0.6,inf])
set(gca,'xtick',[2*pi,4*pi,6*pi],'ytick',[0.95,1,1.05,max(y)])
grid on
title('\ity=1-e^{-\alphat}cos{\omegat}')
text(13.5,1.2,'\fontsize{12}{\alpha}=0.3')
text(13.5,1.1,'\fontsize{12}{\omega}=0.7')
hold on;plot(ts,0.95,'bo','markersize',10);hold off
cell_string{1}='\fontsize{12}\uparrow';
cell_string{2}='\fontsize{16}\fontname{隶书}镇定时间';
cell_string{3}='\fontsize{6}';
cell_string{4}=['\fontsize{14}\rmt_{s}=' num2str(ts)];
text(ts,0.85,cell_string)
xlabel('\fontsize{14}\bft\rightarrow')
ylabel('\fontsize{14}\bfy\rightarrow')
观察指令窗及图形窗中的结果。
观察指令窗及图形窗中的结果。
(5)提高部分
本实习要求事先编写好解决下面问题的程序,然后上机输入程序并调试运行程序。
A 、绘制曲线s a (t)=sin(x)/x,其中]10,10[ππ-∈x (注意:x=0处需要特别处理) x=linspace(-10*pi,10*pi,1000);
d=sin(x);
e=x;
y=d./e;
plot(x,y);
B 、画出t e y t cos 5.0-=的曲线(t 的取值范围是0到2π),在x 轴上标上0.5,
1.2和4.5三个刻度。
在y 轴上标0.2,1.0,3.5三个刻度。
用xlabel 在横轴下标上t;用ylabel 在y 轴左侧标y 在图上用“小红圈”标出第一次使y=0.6的那点位置,并要求在该点旁边用12号字,斜体标出其横坐标。
t=linspace(0,2*pi,1000);
d=exp(-0.5*t);
m=cos(t);
y=d.*m;
plot(t,y);
value=0.6;
pos=find(abs(y-value)<0.001);
pos=pos(1);
t2=t(pos);
y2=y(pos);
hold on;
plot(t2,y2,'or','MarkerSize',5);
实习五句柄图形和图形用户界面制作
一、实习目的
1、熟悉句柄图形体系的对象树结构。
2、熟练掌握句柄图形体系的对象属性的创建、设置、查询。
3、熟练掌握句柄的获取。
4、熟练掌握图形用户界面(GUI)的制作。
二、实习内容
1、句柄的获取
gcf 、gca、gco、findobj、图形创建指令、追溯法等方法获取图形句柄的联系。
常用的图形句柄操作函数如下表]
在command窗口键入以下指令:
>> X = linspace(-pi,pi,25);
>> Y = sin(X);
>> plot(X,Y,'rX');
>>gcf
>>gca
观察指令窗及图形窗中的结果。
2、句柄图形体系的对象属性的创建、设置、查询
3、对象属性的缺省设置和查询
键入以下程序:
t=(0:pi/50:2*pi)';
k=0.4:0.1:1;Y=cos(t)*k;
line(t,Y,'Color',[1 0 0],'LineStyle','-.')
clf reset
set(gca,'ColorOrder',[0 0 0;0.7 0.7 0.7],'LineStyle','-|:') line(t,Y)
clf reset
set(gcf,'DefaultAxesLineStyleOrder','-|:');
set(gcf,'DefaultAxesColorOrder',[1 0 0;0 0 1]);
line(t,Y)
观察指令窗及图形窗中的结果。
4、界面菜单、快捷菜单、现场菜单的制作:figure、set、uimenu的使用
5、用户控件的制作:
实习总结:
一周的时间说长也长,说短也短。
这一周的matlab上机实习,我收获不少。
通过课堂上老师的介绍加上自己亲身的体验,我发现这款软件太强大了,我们可以利用这款软件解决好很多很多的问题完成很多的项目、课题。
不禁概叹人类的智慧和发明研制者的伟大,利用这款软件提高了我们的工作效率。
通过这一周的上机实习,我对matlab有了一个初步的了解,对matlab的开发环境有了很好地认识,熟悉了MATLAB的启动与退出。
可以熟练使用MATLAB的常用窗口(尤其是指令窗、编辑窗)以及各窗口之间的配合使用。
分清了数组运算与矩阵运算的区别与联系。
熟悉了MATLAB的各种数据类型。
了解了M文件及其编写、调试与运行。
掌握了简单二维图形的绘制。
期间通过请教老师或者和同学讨论解决了不少的问题,也加深了我对这款软件的认识,为我以后继续学习matlab打下了良好的基础。
我很清楚matlab包含的内容很多,我们这一周对它的学习只不过是蜻蜓点水,如果说matlab这扇门后面是一个五彩缤纷的世界,那我们这一周的学习仅仅是把这扇门推开了一道很细的缝,通过这道缝我们窥见了门后的美丽。
我相信有这美丽的风景的吸引加上我们那颗积极进取的心,我们一定会把这扇门打
得更开,去拥抱门后的风景。
最后,非常感谢7老师对我们的教导和学校安排这次课程。