matlab**软件的使用。
姓名: 专业: 通信技术
班级: 通技102
学号: 指导老师: 史兆强
时间: 2013 01 04
用mtlab编程实现句柄图形应用。
摘要: 本文利用mtlab的算法设计和程序设计的原理和方法,着重介绍了句柄图形的实际运用。根据提出的实际问题,即画出沿曲线移动的小球,给出具体句柄图形的定义,主要图形对象,以及各对象之间的层次关系;并利用句柄访问,修改图形对象的属性。
关键字: matlab编程; 句柄图形; 算法实现; 沿曲线移动的小球;
引言。matlab是一种以数值计算和数据图示为主的计算机软件,包括matlab主程序、simulink 动态系统**包和各种专业工具箱。它基于矩阵运算,集数值计算、图形显示、图形界面设计等功能和模糊逻辑等30多个专业工具箱于一体,具有极强大的计算功能和极高的编程效率,特别适合于科学计算、数值分析、系统**和信号处理等任务,对后续专业课程的学习有重要影响。
在matlab系统中,绘图命令产生的每一个部分称为图形对象,系统在创建每一个对象时,都为该对象分配唯一的一个值,称其为句柄,因此句柄就是图形对象标识符。对象、句柄以及图形对象等概念其实质是统一的,系统将每一个对象按树型层次结构组织起来,这些对象包括根对象,通常为计算机屏幕、图形窗口、坐标系统、线条、曲面、文本串、用户界面控制等。
根对象可包含一个或多个图形窗口对象,而一个图形窗口对象又可包含一组或多组坐标系子对象,线条、文本等其它对象都是坐标系的子对象。所有创建对象的函数当父对象不存在时,都会自动创建它。
一、 句柄。
计算机屏幕作为根对象自动建立,其句柄值为0.如hf_f=figure命令则建立图形窗口对象,并返回它的句柄值给变量hf_f.图形窗口的句柄为一整数,并显示在该窗口的标题栏,其它图形对象的句柄为浮点数,matlab提供了一系列与句柄操作有关的函数,如gcf 、gca等。
为便于识别,用大写字母开头的变量表示句柄,如hf_f等。
二、 对象属性。
所有图形对象都具有控制对象显示的属性。这些属性既包括对象的一般信息,如对象类型、对象的父对象及子对象等,也包括对象的一些特定信息,如坐标系对象的刻度等。用户可以获取、设置对象属性,以达到控制对象的目的。
当创建一个对象时,系统用一组默认属性值定制对象,用户可以通过命令获取这些属性值,同时也可通过set命令重新设置对象属性。
set命令格式为:
set(h,’name’,value,…)将图形对象h的name属性设置为value.其中h为句柄,name为属性名,value为name的属性值。
用set命令可以方便地设置图形对象属性,如下列程序段就是通过属性来定制图形。
x=[0:0.1:4*pi];
h=plot(x,sin(x返回正弦曲线句柄h
set(h,'linestyle','linewidth',0.1); 设置正弦曲线线型与线宽其中'linestyle'为线型属性,'linewidth'为线宽属性。
利用get(h)命令可以返回当前句柄h对象的属性。键入命令:
get(h) 系统返回当前图形对象的有关属性:
例:h=get(0,’currentfigure’) 则返回根对象的’currentfigure’的属性值,即当前图形窗口的句柄,相当于函数则返回当前坐标系对象的句柄。
三、 句柄应用。
利用句柄操作的有关函数,用户可以查找、访问图形对象,以达到定制对象属性,改变对象显示效果的目的。
x=-pi:pi/20:pi;
y=sin(x);z=cos(x);
plot(x,y,'r',x,z,'g');
hl_lines=get(gca,'children获取正、余曲线句柄向量hl_lines
for k=1:size(hl_lines
if get(hl_lines(k),‘color’)=0 1 00 1 0]为绿颜色向量。
hl_green=hl_li返回绿色线条句柄。
endend
四、 综合运用。
用matlab编程画出沿曲线移动的小球。
matlab源程序:
h0=figure('*******','none',.
'position',[198 56 408 468],.
'name','运行的图形');
h1=axes('parent',h0,..
'position',[0.15 0.45 0.7 0.5],.
'visible','on');
t=0:pi/24:4*pi;
y=sin(t);
plot(t,y,'b')
n=length(t);
h=line('color',[0 0.5 0.5],.
'marker','
'markersize',25,..
'erasemode','xor');
k1=uicontrol('parent',h0,..
'style','pushbutton',.
'position',[80 100 50 30],.
'string','开始',.
'callback',[
'i=1;',
'k=1;,'
'm=0;,'
'while 1,',
'if k==0,',
'break,',
'end,',
'if k~=0,',
'set(h,''xdata'',t(i),'ydata'',y(i)),
'drawnow;,'
'i=i+1;,'
'if i>n,',
'm=m+1;,'
'i=1;,'
'end,',
'end,',
'end'])
k2=uicontrol('parent',h0,..
'style','pushbutton',.
'position',[180 100 50 30],.
'string','停止',.
'callback',[
'k=0;,'
'set(e1,''string'',m),'
'p=get(h,''xdata
'q=get(h,''ydata
'set(e2,''string'',p);,
'set(e3,''string'',q)']
k3=uicontrol('parent',h0,..
'style','pushbutton',.
'position',[280 100 50 30],.
'string','关闭',.
'callback','close');
e1=uicontrol('parent',h0,..
'style','edit',.
'position',[60 30 60 20]);
t1=uicontrol('parent',h0,..
'style','text',.
'string','循环次数',.
'position',[60 50 60 20]);
e2=uicontrol('parent',h0,..
'style','edit',.
'position',[180 30 50 20]);
t2=uicontrol('parent',h0,..
'style','text',.
'string','终点的x坐标值',.
'position',[155 50 100 20]);
e3=uicontrol('parent',h0,..
'style','edit',.
'position',[300 30 50 20]);
t3=uicontrol('parent',h0,..
'style','text',.
'string','终点的y坐标值',.
'position',[275 50 100 20]);
运行图形:1)初始图形:
2)、点击“开始”,小球沿曲线循环运动,再点击“停止”后图形:
五、 结论。
由于使用matlab编程运算与人进行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言--如basic、fortran和c等那样难于掌握,用matlab编写程序犹如在演算纸上排列出公式与求解问题。
matlab 的图形可视能力很强。 matlab 的图形系统有高层和低层两个部分组成。高层指令友善、简便;低层指令细腻、丰富、灵活。
一般说来,不管二元函数多么复杂,就能得到富于感染力的表现。数据和函数的图形可视手段包括:线的勾画、色图使用、浓谈处理、视角选择、透视和裁剪。
matlab 有比较完备的图形标识指令,它们可标注:图名、轴名、解释文字和绘画图例。
六、 参考文献。
1)、《matlab语言及其在电子信息工程中的应用》 王洪元主编清华大学出版社。
2)、《基于matlab的数学实验》 胡守信,李柏年编著科学出版社。
3)、《matlab6实例教程》 郝红伟中国电力出版社。
MATLAB课程设计报告
基于matlab的图像处理 课程设计。学生姓名 徐清福。学号 110700136 专业班级 信通一班 指导教师 郑晓明 二 一零年 4 月 8 日。目录 二号字体 一。课程设计目的2 二。课程设计要求2 三。课程设计报告内容2 四。程序需求和模块分析2 五。详细设计过程3 六。调试及分析16 七。心...
MATLAB课程设计报告
2 整流电路 2.1 单相半波可控整流系统。2.1.1 晶闸管元件的符号和 模型。晶闸管是一种可以通过门极信号触发导通的半导体器件。晶闸管 模型由一个电阻r 一个电感l 一个直流电压源v,和一个开关串联组成。开关受逻辑信号控制,该逻辑信号由电压 电流和门极触发信号 g 决定。晶闸管元件的符号和 模型...
matlab课程设计报告
1.设火箭的射程在其它条件基本相同时与燃料种类及推进器型号有关。现在考虑4种不同的燃料及3种不同型号的推进器,对于每种搭配各发 火箭两次,得数据见表1。问各自变量和自变量的交互效应是否对火箭的射程有显著影响?表1 燃料 推进器 射程数据表。matlab程序 a 58.2 52.6 49.1 42.8...