利用MATLAB编程实现动态画图功能
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自动化专业综合设计报告
设计题目:利用MATLAB编程实现动态画图功能
所在实验室:自动化系统仿真实验室
指导教师:
学生姓名
班级
学号
撰写时间:2012-02-24 成绩评定:
一、设计目的
a)进一步熟悉Matlab的界面及基本操作;
b)了解并掌握Matlab中一些函数的作用与使用;
c)学会如何利用Matlab实现绘图功能,并可使坐标系动态设置。
二、设计要求
1.外部输入数据动态设置坐标系,然后绘制图形
2.举例演示
三、设计内容(可加附页)
Matlab用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。我们设计的题目是利用matlab编程实现动态的画图功能。具体内容体现在:
1):利用外部输入的数据来设置坐标系,使坐标系能够按照自己想要的方式呈现出来,从而更加直观的分析图形。
2):绘制图形,我们举例绘制了一个正弦函数和一个三维的图形。
设计步骤:
1:打开matlab软件
2:建立一个.m文件,保存到work中
3:进行编程
首先从编程的角度分析,要实现两个功能,一个是可以从外部输入数据来改变坐标系。用到的函数是:
axis([])。
其次是实现画图功能并实现图形的动态变化.
具体思路:
1:定义变量
global xmin xmax ymin ymax zmax zmin m n s y a b q p
2建立函数switch()
Case0
Case1
3:从外部输入,编译
a=-8:0.1:10;
q=a';
a1=ones(size(q))*x;
q1=y*ones(size(a));
r=sqrt(a1.^2+q1.^2)+eps;
z=sin(r)./r;
mesh(z);
四.设计实验结果及分析
结果1:在命令窗口输入n=1; a=-8:0.1:10;
q=a';
a1=ones(size(q))*x;
q1=y*ones(size(a));
r=sqrt(a1.^2+q1.^2)+eps;
z=sin(r)./r;
mesh(z);
四、结论
Matlab不仅有着友好的工作平台编程环境,简单易用的程序语言,强大的科学计算机数据处理能力,出色的图形处理功能,应用广泛的模块集合工具箱实用的程序接口和发布平台。而且它还可以绘制复杂的二维和多维的图形,可以进行控制系统仿真,是一个很有用的软件.值得我们自动化专业学生学习的一门课.
五、设计感受
以前对matlab只是局限在数学实验上学的那些知识,但是通过此次的课程设计,才了解到matlab在图像图形处理方面的强大功能。在此要感谢老师对我们的悉心指导,感谢老师给我们的帮助。在设计过程中我们通过查阅大量资料,与同学交流经验合自学,并向同学请教等方式,使自己学到不少知识,也经历了不少艰辛,但同样收获巨大。在整个设计中我
懂得了去多东西,也培养了我独立工作的能力,相信会对今后的学习工作有重要影响。虽然这个设计做的不是太好,但是在设计过程中所学到的东西是最大的收获和财富,是我终生收益。
程序(附)
global xmin xmax ymin ymax zmax zmin m n s y a b q p
function f=myfun(n)
switch n
case 0
xmin=0;
ymin=0;
m=ymin;
ymax=y;
n=ymax;
s=0:0.1:10;
xmax=max(s);
if ymax ymax=m; ymin=n; if ymax>ymin ymin=m; ymax=n; end end plot(s,y); grid on; axis([xmin, xmax ,ymin ,ymax]) case 1 a=-8:0.1:10; q=a'; a1=ones(size(q))*x; q1=y*ones(size(a)); r=sqrt(a1.^2+q1.^2)+eps; z=sin(r)./r; mesh(z); zmin=0; b=zmin; zmax=z; p=zmax; if zmax zmax=b; zmin=p; if zmax>zmin zmin=b; zmax=p; end end plot3(a,q,z); axis([xmin, xmax ,ymin ,ymax,zmin,zmax]) end