matlab课程设计 4.docx
- 文档编号:24945626
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:15
- 大小:133.37KB
matlab课程设计 4.docx
《matlab课程设计 4.docx》由会员分享,可在线阅读,更多相关《matlab课程设计 4.docx(15页珍藏版)》请在冰豆网上搜索。
matlab课程设计4
课程设计任务书
学生姓名:
专业班级:
指导教师:
刘新华工作单位:
信息工程学院
题目:
MATLAB课程设计
要求完成的主要任务:
1.用MATLAB软件绘制二维图像。
2.用MATLAB软件绘制三维图像。
课程设计的目的:
1.理论目的
课程设计的目的之一是为了巩固课堂理论学习,并能用所学理论知识正确绘制出二维三维图像。
2.实践目的
课程设计的目的之二是通过绘制具体的二三维图像,掌握MATLAB的初步使用方法。
时间安排:
序
号
阶段内容
所需时间
1
方案设计
2天
2
软件设计
3天
3
系统调试
2天
4
答辩
1天
合计
8天
指导教师签名:
年月日
系主任(或责任教师)签字:
年月日
目录
摘要I
AbstrctII
1引言1
1.1概况1
1.2基本功能1
1.3应用2
2绘图3
2.1常用绘图函数命令3
2.2绘制二维图像。
5
2.3绘制三维图像10
3心得体会13
4参考文献14
附件:
MATLAB程序15
本科生课程设计成绩评定表17
摘要
强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。
此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。
这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。
Abstrct
ThepowerfuldrawingfunctionisoneofthefeaturesofMatlab,Matlabprovidesaseriesofdrawingfunction,theuserneednotthinktoomuchoftheplotdetails,onlyneedtogivesomebasicparameterscanbeobtainedthedesiredpattern,thiskindoffunctioniscalledhigh-levelplottingfunctions.Inaddition,Matlabalsoprovideslow-leveldrawingoperationstooperatedirectlyonthegraphicshandle.Thiskindofoperationpatternofeachgraphicelements(suchasaxis,curve,text)asanindependentobject,thesystemallocatesahandletoeachobject,youcanoperateonthegraphicelementsthroughthehandle,anddonotaffectotherparts.
1引言
1.1概况
MATLAB是矩阵实验室(Matrix Laboratory)之意。
除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多.
当前流行的MATLAB5.3/Simulink3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.
开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.
1.2基本功能
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连
matlab开发工作界面
接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
1.3应用
MATLAB产品族可以用来进行以下各种工作:
●数值分析
●数值和符号计算
●工程与科学绘图
●控制系统的设计与仿真
●数字图象处理技术
●数字信号处理技术
●通讯系统设计与仿真
●财务与金融工程
MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。
2绘图
2.1常用绘图函数命令
命令1figure
功能:
创建一个新的图形对象。
图形对象为在屏幕上单独的窗口,在窗口中可以输出图形
用法:
用缺省的属性值创建一个新的图形对象。
命令2subplot
功能:
生成与控制多个坐标轴。
把当前图形窗口分割成几个矩形部分,不同的部分是按行方向以数字进行编号。
每一部分有一坐标轴,后面的图形输出与当前的部分中。
用法:
subplot(m,n,p)将一图形窗口分成m*n个小窗口,在第p个小窗口中创建一坐标轴。
则新的坐标轴成为当前坐标轴。
若p为一向量,则创建以坐标轴,包含所有罗列在p中的小窗口。
命令3plot
功能:
用于绘制线性二维图。
有多条曲线时,循环使用由坐标轴颜色顺序属性定义的颜色,以区别不同曲线。
命令4ezplot
功能:
画出符号函数F在区间[xmin,xmax]内的图像。
命令5subplot
功能:
将图形窗口分成几个区域
命令6box
功能:
坐标轴盒状显示
命令7zoom
功能:
二维图形缩放
命令8zlabel
功能:
给图形的z轴加文字说明
命令9feather
功能:
羽状条形图绘制
命令10brighten
功能:
图形亮度调整
命令11hidden
功能:
网格图的网格线开关设置
2.2绘制二维图像。
2.2.1画出衰减震荡曲线
及其他的包络线
t的取值范围是[0,6
].
分析:
1首先声明t的取值范围,及步长设为200.即t=linspace(0,6*pi,200)或者t=0:
200:
6*pi
2生成y的数据,即y=exp(-(3.*t)).*cos(t/5)
3生成y0数据,即y0=exp(-(3*t))
>>t=linspace(0,6*pi,200);%设置t的范围
>>y=exp(-(3.*t)).*cos(t/5);%生成y的数据
>>y0=exp(-(3.*t));%生成y0的数据
>>plot(t,y,'r-'),xlabel('t轴'),ylabel('y轴');%用红色实线绘制
>>holdon;%在当前图形上继续绘制下一个图形
>>plot(t,y0,'b:
');%用蓝色点线绘制
图1y=e^(-(3t)cos(t/5)图像
图2包络线图像
2.2.2在同一坐标系中绘制y=sinx,y1=sin(2x),y2=2sinx图像,z=lnx,z1=2lnx,z2=ln(2x)图像。
(x的范围为(0,25))
分析:
首先确定x的取值范围,即x=linspace(0,20,200);
确定函数关系y=sin(x),y1=sin(2.*x),y2=2.*sin(x);
建立曲线:
plot(x,y,’b’,x,y1,’:
’,x,y2,’:
’);
继续在原图像上绘图:
holdon;
z=log(x),z1=2.*log(x),z2=log(2.*x);
建立曲线:
plot(x,z,’y’,x,z1,’:
’,x,z2,’:
’);
进行图形的修饰。
程序如下:
x=linspace(0,20,200);
y=sin(x);
y1=sin(2.*x);
y2=2.*sin(x);
plot(x,y,’b’,x,y1,’:
’,x,y2,’:
’)
holdon
z=log(x);
z1=2.*log(x);
z2=log(2.*x);
polot(x,z,’y’,x,z1,’:
’,x,z2,’:
’);
xlabel(‘x轴’),ylabel(‘y轴’);
图3y,y1,y2图像
图4y,y1,y2,z,z1,z2图像
2.3绘制三维图像
2.3.1空间内的曲线
x=-3:
0.1:
3;
确定x的范围
y=1:
0.1:
5:
确定y的范围
[X,Y]=meshgrid(x,y);
生成以向量x为行,向量y为列的矩阵
Z=(X+Y).^2;
plot3(X,Y,Z);
程序如下:
x=-3:
0.1:
3;
y=1:
0.1:
5:
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
plot3(X,Y,Z);
2.3.2空间内的平面
旋转抛物面
>>b=0:
0.2:
2*pi;
>>[X,Y]=meshgrid(-6:
0.1:
6);
>>Z=(X.^2+Y.^2)./4;
>>meshc(X,Y,Z);
>>axis('square')
>>xlabel('x轴');ylabel('y轴');zlabel('z轴');
>>title('旋转抛物面')
图5三维图像
3心得体会
在本次的课设中我学到了很多,从开始的一无所知道现在能解决一点简单的问题,以下是我的一点心得:
1.最好找一个熟悉编程的人来辅助你的学习,这就包括很多编程的技巧问题,程序的结构设计问题,对于程序的运行效率非常有帮助。
有的时候,你编出来的程序,能够运行,但是耗时太长,也就是说你的程序没有错,但是不适合实际。
或者说,对于规模小的问题能够解决,但是规模大一点的问题就需要很长很长的时间,这就需要对程序的结构和算法问题进行改进
2.需要找一本matlab的函数工具词典,就像汉语词典一样,你要尽量多的熟悉matlab自带的函数,及其作用,因为matlab的自带函数特别多,基本上能够满足一般的数据和矩阵的计算,所以基本上不用你自己编函数(如vb中,大部分的函数都需要自己编)。
这一点对你的程序非常有帮助,可以使你的程序简单,运行效率高,可以节省很多时间。
3.你把基本的知识看过之后,就需要找一个实际的程序来动手编一下,不要等所有的知识都学好之后再去编程,你要在编程的过程中学习,程序需要什么知识再去补充(这一条是别人教我的,很管用),编程是一点一点积累的,所以你要需做一些随手笔记什么的。
4.编程问题最头疼的不是编程序,而是调程序,所以在你的程序编完之后,一定要进行验证其正确性,你要尽量多的设想你的问题的复杂性,当然,要一步一步复杂,这样才能保证你的程序的适用性很强。
Matlab确实是一个很强大的工具,这在我完成任务的时候逐步的认识到了,以后还有多加以利用。
这次课设不仅是一个任务,它不想仅让我们学会了使用Matlab,还让我们有了一个自主学习与和别人交流的机会。
而学会的东西都是对以后的专业学习很有帮助的,相信在这个强大的工具下,让以后的专业学习会更轻松。
4参考文献
1、《MATLAB及在电子信息类课程中的应用(第2版)》电子工业出版社唐向
荣等编著
2、《MATLAB实用教程(第2版)》电子工业出版社高会生等编著
3、《MATLAB7.0从入门到精通(修订版)》人民邮电出版社刘保柱等编著
4、《MATLAB数值计算》机械工业出版社莫勒、喻文健等编著
5、《MATLAB2010从入门到精通》电子工业出版社张琨编著
6、《MATLAB教程》北京航空航天大学出版社张志涌、杨祖樱等编著
附件:
MATLAB程序
1绘制二维图
(1)>>t=linspace(0,6*pi,200);
>>y=exp(-(3.*t)).*cos(t/5);
>>y0=exp(-(3.*t));
>>plot(t,y,'r-'),xlabel('t轴'),ylabel('y轴');
>>holdon;
>>plot(t,y0,'b:
');
(2)>>x=linspace(0,20,200);
>>y=sin(x);
>>y1=sin(2.*x);
>>y2=2.*sin(x);
>>plot(x,y,’b’,x,y1,’:
’,x,y2,’:
’)
>>holdon
>>z=log(x);
>>z1=2.*log(x);
>>z2=log(2.*x);
>>polot(x,z,’y’,x,z1,’:
’,x,z2,’:
’);
>>xlabel(‘x轴’),ylabel(‘y轴’);
2绘制三维图
(1)x=-3:
0.1:
3;
y=1:
0.1:
5:
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
plot3(X,Y,Z);
(2)>>b=0:
0.2:
2*pi;
>>[X,Y]=meshgrid(-6:
0.1:
6);
>>Z=(X.^2+Y.^2)./4;
>>meshc(X,Y,Z);
>>axis('square');
>>xlabel('x轴');ylabel('y轴');zlabel('z轴');
>>title('旋转抛物面')
本科生课程设计成绩评定表
姓名
性别
专业班级
题目:
答辩或质疑记录:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
__________________
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab课程设计 matlab 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)