版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023/3/281第四讲matlab绘图——matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。2023/3/282
matlab语言的绘图功能
不仅能绘制几乎所有的标准图形,而且其表现形式也是丰富多样的。
matlab语言不仅具有高层绘图能力,而且还具有底层绘图能力——句柄绘图方法。在面向对象的图形设计基础上,使得用户可以用来开发各专业的专用图形。2023/3/283数据的可视化一、图形窗口MATLAB自动将图形画在图形窗口上;图形窗口相对于命令窗口是独立的窗口;图形窗口的属性由系统和MATLAB共同控制。二、常用图形窗口命令格式figure%建立一个新的图形窗口,并指定为当前窗口用于图形输出subplot %把多个图形绘在一个图形窗口中subplot(m,n,I)%把图形窗口分成m×n个小图形区域,并指定第i个区域为图形绘制区域,图形区域的编排采用行优先2023/3/284
二维图形绘制
二维图形绘制基本语句构造向量:2023/3/285②t和y均为矩阵,且行列数均相同,则绘制t的每列与y的每列之间关系的曲线。t为n维向量,y为n×m或m×n矩阵,则以t为横坐标,画出y的m个n维分量。2023/3/286plot(y)(1)y为向量,以向量索引为横坐标值,以向量元素值为纵坐标值(2)y为矩阵,绘制y的列向量对其坐标索引的图形2023/3/287选项的标准设定值如下:
字母颜色标点线型
y黄色·
点
m粉红○圈线
c亮蓝××线
r大红++字线
g绿色-实线
b蓝色星形线
w白色:点线
k黑色-·
点划线--虚线
2023/3/288(一)plot——
最基本的二维图形指令plot的功能:
plot命令自动打开一个图形窗口Figure
用直线连接相邻两数据点来绘制图形根据图形坐标大小自动缩扩坐标轴,将数据标尺自动加到两个坐标轴上,可自定坐标轴,可把x,y轴用对数坐标表示2023/3/2891.单窗口单曲线绘图例1:x=[0,0.48,0.84,1,0.91,0.6,0.14]plot(x)2023/3/28102.单窗口多曲线绘图例2:t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y,t,y1,t,y2)yy1y22023/3/2811可任意设置颜色与线型例2:plot(t,y,'r-',t,y1,'g:',t,y2,'b*')2023/3/2812例3:t=0:pi/100:2*pi;
y=sin(t);
y1=sin(t+0.25);
y2=sin(t+0.5);
y3=cos(t);
y4=cos(t+0.25);
y5=cos(t+0.5);
plot(t,[y',y1',y2',y3',y4',y5'])2023/3/2813y3=cos(t);y4=cos(t+0.25);y5=cos(t+0.5);plot(t,y3);holdon;plot(t,y4);plot(t,y5);2023/3/2814在同一窗口中画出函数sinx在区间[0,2pi]的曲线和cosx在区间[-pi,pi]的曲线x1=0:0.1:2*pi;plot(x1,sin(x1))holdonx2=-pi:0.1:pi;plot(x2,cos(x2))x1=0:0.1:2*pi;x2=-pi:0.1:pi;plotyy(x1,sin(x1),x2,cos(x2))双坐标系2023/3/2815x=peaks;plot(x)%x=1:length(peaks);y=peaks;plot(x,y)2023/3/2816【例2-21】exp2_21x2023/3/2817【例2-22】虽然用if容易构造求出x,y的值。但是用关系表达式构造一个和x一样长的向量在满足x>1.1的点上对应值为1,否则为0更为简单2023/3/28183.单窗口多曲线分图绘图subplot——
子图分割命令调用格式:
subplot(m,n,p)
——
按从左至右,从上至下排列行列绘图序号例exp2_6.m2023/3/2819subplot(1,3,1);plot(t,y1)
subplot(1,3,2);plot(t,y3)
subplot(1,3,3);plot(t,y2)2023/3/28204.多窗口绘图figure(n)——
创建窗口函数,n为窗口顺序号。t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y)——
自动出现第一个窗口figure(2)plot(t,y1)——
在第二窗口绘图figure(3)plot(t,y2)——在第三窗口绘图216.图形加注功能将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为:
title——
给图形加标题
xlable——
给x轴加标注
ylable——
给y轴加标注
text——
在图形指定位置加标注
gtext——
将标注加到图形任意位置
ginput——从图形上获取数据
gridon(off)——
打开、关闭坐标网格线
legend——
添加图例
axis——
控制坐标轴的刻度例:exp2_5_.m22t=0:0.1:10y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--');[m,n]=ginput(1)%获取鼠标点击位置text(m,n,‘第一点’);%根据鼠标点击的位置标注gtext(‘2/pi’)%在鼠标点击处标注x=[1.7*pi;1.6*pi];y=[-0.3;0.8];s=['sin(t)';'cos(t)'];text(x,y,s);%固定标注title('正弦和余弦曲线');legend('正弦','余弦')xlabel('时间t'),ylabel('正弦、余弦')gridonaxissquareexp2_8例:绘制sint,cost的图形,获取图形信息,并在指定位置处标注。2023/3/2823
axis的用法还有:
axis([xminxmaxyminymax])——
用行向量中给出的值设定坐标轴的最大和最小值。如axis([-2
205])axisequal——
将两坐标轴设为相等
axison(off)——
显示和关闭坐标轴的标记、标志axissquare使绘图区为正方形
axisauto——自动模式,使得图形的坐标范围满足图中一切图元素2023/3/28247.fplot——
绘制函数图函数fplot的调用格式:fplot(fun,lims)
—
绘制函数fun在x区间lims=[xminxmax]/[xminxmaxyminymax]的函数图。fplot(fun,lims,'corline')—
以指定线形绘图。[x,y]=fplot(fun,lims)—
只返回绘图点的值,而不绘图。用plot(x,y)来绘图。2023/3/2825fplot('[sin(x),tan(x),cos(x)]',2*pi*[-11-11]);
fplot('humps',[01],'rp')2023/3/2826隐函数绘制及应用隐函数【例2-25】无法用解析的方法写出该函数,不能用前面的plot函数绘制该函数的曲线exp2_25x2023/3/2827当f=f(x):ezplot(f)
—在x轴的默认范围[-2*pi2*pi]内绘制f(x)的函数图ezplot(f,[xmin,xmax])
—
给定区间当f=f(x,y):ezplot(f)
—在x轴的默认范围[-2*pi2*pi]内绘制f(x,y)=0ezplot(f,[xmin,xmax,ymin,ymax])—
给定区间ezplot(f,[min,max])ezplot(x,y)---绘制x=x(t),y=y(t)在t=[0,2*pi]ezplot(x,y,[tmin,tmax])---绘制x=x(t),y=y(t)在t=[tmin,tmax]ezplot(…,figure(n))
—
指定绘图窗口绘图。ezplot的调用格式:2023/3/2828ezplot的调用格式:ezplot('sin(x)')
ezplot('sin(x)','cos(x)',[-4*pi4*pi],figure(2))2023/3/2829y=sym('-1/3*x^3+1/3*x^4')ezplot(y)%绘制符号函数在[-2*pi,2*pi]中的图形ezplot(y,[0,100])%绘制符号函数在[0,100]中的图形x=sym('sin(t)');y=sym('cos(t)');z=sym('t');ezplot3(x,y,z,[1,10*pi])ezplot3绘制3维符号表达式曲线2023/3/2830fill
––––
基本二维绘图函数
fill的功能:绘制二维多边形并填充颜色例:x=[12345];y=[41514];fill(x,y,'r')2023/3/2831其他二维图形绘制语句2023/3/2832例,绘制阶梯曲线x=0:pi/20:2*pi;y=sin(x);stairs(x,y)2023/3/2833h2=[11;1-1];h4=[h2h2;h2-h2];h8=[h4h4;h4-h4];t=1:8;fori=1:8subplot(8,1,i);stairs(t,h8(i,:))axisoffend2023/3/2834【例2-23】绘制极坐标曲线2023/3/2835例:绘制火柴杆绘图
t=0:0.2:2*pi;y=cos(t);stem(y)例:绘制直方图
t=0:0.2:2*pi;y=cos(t);bar(y)2023/3/2836例:绘制彗星曲线图
t=-pi:pi/500:pi;y=tan(sin(t))-sin(tan(t));comet(t,y)2023/3/2837x=magic(6);area(x)area—面域图2023/3/2838x=[1234567];y=[0001000];pie(x,y)2023/3/2839a=rand(200,1);b=rand(200,1);c=rand(200,1);scatter(a,b,100,c,'p')2023/3/2840对数坐标图形semilogx:绘制以x轴为对数坐标(以10为底),y轴为线性坐标的半对数坐标图形。semilogy:绘制以y轴为对数坐标(以10为底),x轴为线性坐标的半对数坐标图形。例:exp2_17.m了解应用型绘图指令:用于数值统计分析或离散数据处理bar(x,y);hist(y,x);stairs(x,y);stem(x,y)例:exp2_7.m注意对于图形的属性编辑同样可以通过在图形窗口上直接进行。但图形窗口关闭之后编辑结果不会保存2023/3/28412.5.4图形标注直接采用工具栏文字修饰特殊符号表上下标分别用^和_表示优越性MATLAB7.0的新功能2023/3/2842在Matlab图形上添加文字标注2023/3/2843e.g.2_192023/3/2844stem3(),fill3(),bar3(),ezplot3等三维绘图2023/3/2845(一)三维线图plot3——
基本的三维图形指令调用格式:plot3(x,y,z)——x,y,z是长度相同的向量plot3(X,Y,Z)——X,Y,Z是维数相同的矩阵plot3(x,y,z,s)——
带开关量plot3(x1,y1,z1,'s1',x2,y2,z2,'s2',…)2023/3/2846二维图形的所有基本特性对三维图形全都适用。定义三维坐标轴大小
axis([xminxmaxyminymaxzminzmax
])gridon(off)绘制三维网格
text(x,y,z,‘string’)三维图形标注子图和多窗口也可以用到三维图形中2023/3/2847例:绘制三维线图t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),'r:')2023/3/2848t=(0:0.02:2)*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,'b-',x,y,z,'bd');view([-82,58]);boxon;legend('链','宝石')宝石项链
2023/3/2849透视效果演示exp2_32剔透玲珑球
2023/3/2850【例2-26】参数方程Exp2_26x注意:通过向量计算x,y,z向量之间的计算采用点运算2023/3/2851(二)三维饼图
pie3([43689])2023/3/2852(三)三维多边形fill3=fill——
三维多边形的绘制和填色与二维多边形完全相同调用格式:
fill3(x,y,z,‘s’)——
与二维相同2023/3/2853例:用随机顶点坐标画出5个粉色的三角形,并用黄色的○表示顶点y1=rand(3,5);y2=rand(3,5);y3=rand(3,5);fill3(y1,y2,y3,'m');holdon;plot3(y1,y2,y3,'yo')2023/3/2854(四)三维网格图mesh——
三维网格绘图函数exp2_37调用格式:
mesh(z)——z为n×m的矩阵,x与y
坐标为元素的下标
mesh(x,y,z,c)——x,y分别为向量,若长度分别为m和n,z为高度矩阵m×n,网格线的顶点为(x(i),y(j),z(i,j))c为颜色矩阵meshc-----在mesh基础上增加等高线meshz-----在mesh基础上增加边界面2023/3/2855例:8阶hadamard矩阵的网格图h2=[11;1-1];h4=[h2h2;h2-h2]h8=[h4h4;h4-h4];mesh(h8)2023/3/2856(五)三维曲面图surf——
三维曲面绘图函数,与网格图看起来一样与三维网格图的区别:网格图:线条有颜色,空挡是无颜色曲面图:线条是黑色的,空挡有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化exp2_372023/3/2857surfc()----在surf的基础上增加等高线surfl()-----在surf的基础上增加光照其它函数:waterfall()-----带瀑布流水形状的网线图,调用同mesh例:waterfall(peaks)等高线绘制contour(),contour3()2023/3/2858
三维网线绘制一般绘制语法2023/3/2859三维网线图作图要领生成坐标——
[X,Y]=meshgrid(x,y)meshgrid命令是以x,y向量为基准,产生在x-y平面的各网格点坐标值矩阵。将x(1×m)向量和y(1×n)向量转换为(n×m)的矩阵X,Y。表达式点运算——Z=X.^2+Y.^2X,Y是n×m的矩阵XYZ—
默认方位角:37.5º,俯角30º。2023/3/2860
meshgrid——
网线坐标值计算函数
z=f(x,y)—
根据x,y坐标找出z的高度例:绘制z=x2+y2的三维网线图形
x=-5:5;y=x;[X,Y]=meshgrid(x,y)Z=X.^2+Y.^2mesh(X,Y,Z)2023/3/2861【例2-27】绘制的三维表面图e.g.2_27ezmesh(z),ezsurf(z)也能得到同样的图形,z=f(x,y),ezmesh('x*exp(-x^2-y^2)')ezsurf('x*exp(-x^2-y^2)')2023/3/2862【例2-28】绘制该曲线的三维表面图exp2_282023/3/2863
cylinder(r,n)—
三维柱面绘图函数
r为半径;n为柱面圆周等分数例:绘制三维陀螺锥面t1=0:0.1:0.9;t2=1:0.1:2;r=[t1-t2+2];[x,y,z]=cylinder(r,30);surf(x,y,z);gridon2023/3/2864sphere(n),n为球面等分数,缺省为20例:绘制三维球面[x,y,z]=sphere(30);surf(x,y,z);2023/3/2865(六)图形修饰方法图形颜色的修饰matlab有极好的颜色表现功能colormap(MAP)
——
色图设定函数,MAP为m×3维色图矩阵图形颜色可根据需要任意生成,也可用matlab配备的色图函数2023/3/2866colormap([R,G,B])——
色图设定函数matlab的颜色数据集合为红、绿、兰三颜色矩阵[R,G,B],维数m×3r,g,b在[01]区间连续取值,理论上颜色种类可达无穷多种matlab使用三维向量表示一种颜色,常用颜色数据见下表2023/3/2867饱和色
[000]—
黑色
[001]—
兰色
[010]—
绿色
[011]—
浅兰
[100]—
红色
[101]—
粉红
[110]—
黄色
[111]—
白色
调和色[0.50.505]—
灰色[0.500]—
暗红色[10.620.4]—
铜色[0.4910.8]—
浅绿[0.4910.83]—宝石兰查看默认的色图矩阵peaks;colormap2023/3/2868matlab的色图函数:
hsv——
饱和值色图
gray——
线性灰度色图
hot——
暖色色图
cool——
冷色色图
bone——
兰色调灰色图
copper——
铜色色图
pink——
粉红色图
prism——
光谱色图
jet——饱和值色图IIflag——
红、白、蓝交替色图2023/3/2869shadingfaceted—
以网格修饰,缺省方式各种着色方案2023/3/2870shadingflat——
去掉黑色线条,平滑方式着色2023/3/2871shadinginterp——以插值形式为图形的像点着色。2023/3/2872peaks(30);shadinginterp;colormap(hot)2023/3/2873[X,Y,Z]=peaks(30);
surfl(X,Y,Z);
shadinginterp;
colormap(cool);
axisoff2023/3/2874peaks(30);colormap(hot);colorbar('horiz')颜色标注2023/3/2875图形效果修饰透视与消隐——
用于网线图裁剪修饰——用于网线图、曲面图视角修饰——
观察不同角度的三维视图其它修饰:
a.水线修饰
b.等高线修饰2023/3/2876透视与消隐(使隐藏在后面的重叠网格是否可见)p=peaks(30);mesh(p);hiddenon2023/3/2877p=peaks(30);mesh(p);hiddenoff2023/3/2878裁减修饰(将裁剪部分的数据设定为NaN)p=peaks;p(30:40,20:30)=NaN;surf(p)2023/3/2879视角转换的方法图形窗口工具栏
三维图形视角设置2023/3/2880视角修饰(函数view(az,el))
az----方位角;el----仰角省缺值为:az=-37.5;el=30例。观察不同视角的波峰图形z=peaks(40);subplot(2,2,1);mesh(z);subplot(2,2,2);mesh(z);view(-15,60);subplot(2,2,3);mesh(z);view(-90,0);subplot(2,2,4);mesh(z);view(-7,-10);2023/3/28812023/3/2882【例2-29】绘制的三视图exp2_29[x,y]=meshgrid(-3:0.1:3,-2:0.1:2);z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);subplot(221),surf(x,y,z),view(0,60);axis([-33-22-0.81.5]);subplot(222),surf(x,y,z),view(90,0);axis([-33-22-0.81.5]);subplot(223),surf(x,y,z),view(0,0);axis([-33-22-0.81.5]);subplot(224),surf(x,y,z),axis([-33-22-0.81.5]);2023/3/2883其它修饰:
a.水线修饰(waterfall)waterfall(peaks(30))
2023/3/2884b.等高线修饰二维contour(Z,n)--------绘制n条等高线C=contourc(Z,n)------计算n条等高线的坐标Clable(c)------给等高线加标注例、在二维平面上绘制peaks函数的10条等高线C=contour(peaks,10);clabel(C)2023/3/2885contour3(peaks,20)2023/3/2886(五)、伪彩色图pcolor——
常用于以二维平面图表现三维图形的效果,用颜色表示三维图形的高度。z=peaks(30)pcolor(z)2023/3/2887(六)动画效果动画生成的步骤:以电影方式产生动画创建帧矩阵—————moviein对动画中的每一帧生成图形,并把它们放到帧矩阵中————getframe从帧矩阵中回放动画movieExp2_38Exp4_102023/3/2888以对象方式产生动画先计算对象的新位置,并在新位置上显示出对象,然后擦除原位置上的旧对象,并刷新屏幕(1)擦除属性EraseModenormal:计算整个画面的数据,重画整个图形
xor:将旧对象的点以xor的方式还原,只画与屏幕色不一致的新对象
background:将旧对象的点变成背景颜色
none:保留旧对象点,不进行任何擦除(2)对象的位置属性,xdata,ydata(3)屏幕刷新。drawnow(4)产生动画89例:使用对象方式产生1个红色小球沿着曲线运行的界面exp2-40x=0:0.1:20;y=1-1/sqrt(1-0.3^2)*exp(-0.3*x).*sin(sqrt(1-0.3^2)*x+acos(0.3));plot(x,y)h=line(0,0,'color','red','marker','.','markersize',40,'erasemode','xor');%定义红色小球set(h,'erasemode',‘none');fori=1:length(x)set(h,'xdata',x(i),'ydata',y(i));%设置小球新位置pause(0.01)drawnowend2023/3/2890图像的显示与处理MATLAB中提供了图像文件读取函数imread(),该函数可以将图像文件按三维数组的形式读入MATLAB的工作空间,这样的三维数组可以用image()函数回执出来w=imread('yinghua.jpg');image(w)image(w),set(gca,'visible','off')imag(255-w)%错误,uint8型数据不支持减法运算符。image(uint8(255-double(w))),先转为双精度,再转为uint82023/3/2891matlab句柄绘图——matlab语言的句柄绘图可以对图形各基本对象进行更为细腻的修饰,可以产生更为复杂的图形,而且为动态图形的制作奠定了基础。2023/3/2892高层绘图与底层绘图的区别高层绘图函数——是对整个图形进行操作的,图形每一部分的属性都是按缺省方式设置的,充分体现了matlab语言的实用性。底层绘图函数——可以定制图形,对图形的每一部分进行控制,用户可以用来开发用户界面以及各专业的专用图形。充分体现了matlab语言的开发性2023/3/2893一、什么是句柄图形句柄图形:利用底层绘图函数,通过对对象属性的设置与操作实现绘图。句柄图形中所有图形操作都是针对图形对象而言的。句柄图形充分体现了面向对象的程序设计。2023/3/2894句柄图形的功能句柄图形可以随意改变matlab生成图形的方式。句柄图形允许你定制图形的许多特性,无论是对图形做一点小改动,还是影响所有图形输出的整体改动。句柄图形的特性是高层绘图函数无法实现的2023/3/2895父对象子对象句柄图形体系图形对象之间的关系为父代与子代的关系窗口1窗口n窗口2界面控制界面菜单轴线面字块像根屏幕2023/3/2896说明:根:图形对象的根,对应于计算机屏幕,根只有一个,其它所有图形对象都是根的后代。用户不能创建根,matlab启动后根就已经存在图形窗口:
根的子代,窗口的数目不限,所有图形窗口都是根屏幕的子代,除根之外,其它对象则是窗的后代。界面控制:图形窗口的子代,创建用户界面控制对象,使得用户可采用鼠标在图形上作功能选择。2023/3/2897界面菜单:
图形窗口的子代,创建用户界面菜单对象
轴:图形窗口的子代,创建轴对象,线面字块像的父辈线:轴的子代,创建线对象面:轴的子代,创建面对象字:轴的子代,创建字对象块:轴的子代,创建块对象像:轴的子代,创建图像对象2023/3/28982023/3/2899创建图形对象命令的格式h_light=light(‘propertyname’,propertyvalue)h_uicontrol=uicontrol(‘propertyname’,propertyvalue)%创建用户界面控件h_uimenu=uimenu(‘propertyname’,propertyvalue)%创建用户界面菜单。。。。h_figure=figure(n)%创建第n个图形窗口h_axes=axes(‘position’,[left,bottom,width,height])%定义轴的位置h_line=line(x,y,z)%创建直线h_surface=surface(x,y,z,c)%创建面h_image=image(x)%创建图像h_text=text(x,y,’string’)%创建文字h_patch=patch(x,y,z,c)%创建片2023/3/28100什么是句柄?句柄是图形对象的标识代码,标识代码含有图形对象的各种必要的属性信息。各图形对象的句柄数据格式:
根屏幕0
图形窗口整数,表示图形窗口数其它对象对应的符点数2023/3/28101对象句柄的获取gcf获取当前图形窗口句柄gca获取当前坐标轴句柄gco获取被鼠标最近单击对象的句柄Exp4_282023/3/28102查找对象h=findobj(h_obj,‘PropertyName’,PropertyValue)%在指定对象及子对象中查找符合指定属性值的对象句柄Exp4_28h=findobj%返回根对象和所有子对象的句柄h=findobj(h_obj)%返回指定对象的句柄h=findobj(‘PropertyName’,PropertyValue)%返回符合指定属性值的对象句柄2023/3/28103追溯父对象和子对象的句柄Exp4_28对象句柄的删除在获取了图形对象的句柄后,就可以对图形对象进行操作delete(h_obj)将删除句柄所指对象和所有子对象Exp4_28h_parent=get(h_obj,’parent’)%追溯父对象的句柄h_children=get(h_obj,’children’)%追溯子对象的句柄2023/3/28104图形对象属性的获取和设置所有的图形对象都有属性,通过设置属性来定义或修改对象的特征。每个不同对象都有和它相关的属性,包括对象的位置、颜色、类型、父对象和子对象。对象属性由属性名和相应的属性值组成,属性名是字符串(一般第1个字母大写)。2023/3/28105h_fig=figure('color','red','menubar','none','position',[0,0,300,300])%创建1个窗口,背景为红色,没有菜单条,在屏幕(0,0)的位置,宽度、高度为300创建对象时设置属性对象的属性可以在创建时设置,在创建时句柄图形对象可以设置多个属性ps.color='red';ps.position=[00300300];ps.menubar='none';h_fig=figure(ps)或者用结构数组创建图形对象2023/3/28106用get函数获取属性值p=get(h_fig,'position')p=get(h_fig,'color')get函数用于获取指定对象的属性值get(h_obj)%获取句柄对象所有属性的当前值2023/3/28107用set函数设置属性值set(h_obj)%显示句柄对象所有属性和可能的属性值set(h_obj,’PropertyName’)%显示句柄对象指定属性名的可能属性值set(h_obj,’PropertyName’,’PropertyValue’)%设置句柄对象指定属性的属性值set(h_obj,’PropertyStructure’)%用结构数组设置句柄对象指定属性的属性值Exp4_302023/3/28108对象属性的默认设置和获取get(h_obj,’DefaultObjectTypePropertyName’)%获取对象属性的默认值set(h_obj,’DefaultObjectTypePropertyName’,’PropertyValue’)%设置属性的用户定义默认值set(h_obj,’DefaultObjectTypePropertyName’,’Remove’)%删除属性的用户定义默认值2023/3/28109例:作正弦、余弦曲线,将正弦曲线改为虚线,将余弦曲线幅度减为1/2高度,如何用句柄实现。x=0:2*pi/180:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,’*’x,y2,’+’,x,zeros(size(x)))Exp4_332023/3/28110>>guideMATLAB5.0版的出现使MATLAB图形界面设计技术进入了一个新阶段,提供了使用的用户图形界面开发程序GUIDE,它完全支持可视化编程,其方便程度类似于VisualBasic.将它提供的方法和用户的MATLAB编程经验结合起来,可以很容易的写出用户界面程序图形用户界面设计工具GUIDE开发含GUI界面的程序包含两个步骤设计GUI界面及其各个控件布局为各个GUI界面控件编程Callback函数从原理上来说,任何含GUI界面的程序都可以用M文件编辑器Editor来实现,但显然用GUIDE工具设计界面要方便得多。GUIDE设计将得到两个文件,他们是FIG文件:包含界面布局设计及各个图形对象属性取值M文件:调出界面的主程序及各个回调子程序,一般称为M应用文件。应用GUIDE进行设计时,先要设置好GUIDE应用选项,选择菜单Tools/ApplicationOptions,将弹出如下对话框。各个选项含义很容易明白,在此不再多说。一般来说,在MATLAB命令窗执行的绘图函数将在当前图形窗口绘图,但一般GUI窗口不希望这样操作,这可由选项Command-LineAccessibility来控制,它的含义如下。CallbackGUI窗口和坐标轴只能被Callback函数使用,这是缺省值OffMATLAB命令行命令不能控制GUI界面OnMATLAB命令行命令可以控制GUI界面User-specified根据窗口的HandleVisibility和IntegerHandle属性值由用户决定当你选择Generatecallbackfunctionprototypes时,GUIDE为每个有Callback函数的控件产生Callback原型函数。Callback原型函数语法及参数如下functionvarargout=objectTag_Callback(h,eventdata,handles)hCallback函数附属的对象的句柄eventdata事件代码handles句柄集115用户界面开发环境组成(1)菜单栏;(2)Guide工具栏;(3)图形控件面板;(4)界面编辑客户区。116控件1.静态文本(StaticText) 2.编辑框(EditText)控件3.列表框(Listbox)控件 4.滚动条(Slider)控件5.按钮(PushButton)控件 6.开关按钮(ToggleButton)控件7.单选按钮(RadioButton)控件 8.按钮组(ButtonGroup)控件9.检查框(CheckBox)控件 10.列表框(Listbox)控件11.弹出式菜单(PopupMenu)控件 12.坐标轴(Axes)控件13.面板(Panel)控件117GUIDE常用工具LayoutEditor:布局编辑器;AlignmentTool:对齐工具;PropertyInspector:对象属性观察器;ObjectBrowser:对象浏览器;MenuEditor:菜单编辑器。1181.布局编辑器(1)Cut:对选中的控件进行剪切操作。(2)Copy:复制选中的控件。(3)Paste:粘贴复制的控件。(4)Delete:删除选中的控件。(5)Duplicate:对选中的控件进行复制并粘贴。(6)PropertyInspector:对选中的控件打开属性检查器。(7)ObjectBrowser:打开对象浏览器。(8)ButtonDownFcn:按下鼠标时控件回调的函数。(9)Callback:激活控件时调用的函数或功能。(10)CreateFcn:定义控件在创建阶段执行的回调例程。(11)DeleteFcn:定义在对象的删除阶段执行的回调例程。(12)KeyPressFcn:按键执行回调例程。1192.对齐工具1203.对象属性观察器一、控件风格和外观(1)BackgroundColor:设置控件背景颜色,使用[RGB]或颜色定义。(2)CData:在控件上显示的真彩色图像,使用矩阵表示。(3)ForegroundColor:文本颜色。(4)String属性:控件上的文本,以及列表框和弹出菜单的选项。(5)Visible:控件是否可见。(6)Position:控件对象的尺寸和位置。(7)Units:设置控件的位置及大小的单位(8)有关字体的属性,如FontAngle,FontName等。1213.对象属性观察器二、对象的常规信息(1)Enable属性:表示此控件的使能状态,设置为on”,表示可选,为“off”时则表示不可选。(2)Style:控件对象类型。(3)Tag:控件表示(用户定义)。(4)TooltipString属性:提示信息显示。当鼠标指针位于此控件上时,显示提示信息。(5)UserData:用户指定数据。1223.对象属性观察器三、控件回调函数的执行(1)BusyAction:对于在不允许中断的回调函数执行期间发生的事件处理方式。有两种选项:即Cancel:取消事件,queue:将事件排队(默认设置)。(2)ButtonDownFcn属性:鼠标按下时的处理函数。(3)CallBack属性:是连接程序界面整个程序系统的实质性功能的纽带。该属性值设置为一个字符串使用户激活控件时该函数能够被调用。(4)CreateFcn:在对象产生过程中执行的回调函数。(5)DeleteFcn:删除对象过程中执行的回调函数。(6)KeyPressFcn:按键执行回调函数。(7)Interruptible属性:指定当前的回调函数在执行时是否允许中断,去执行其他的函数。1233.对象属性观察器四、控件当前状态信息(1)ListboxTop:在列表框中显示的最顶层的字符串的索引。(2)Max:最大值。(3)Min:最小值。(4)Value:控件的当前值。1244.对象浏览器对象浏览器里面列出了所有对象的树状结构,这些结构就是当前正在设计的GUI程序中用到的所有对象。1255.菜单编辑器菜单编辑器提供了两种菜单类型的编辑功能:下拉式菜单(MenuBar)弹出式菜单(ContextMenu)下面介绍各个图形对象的Callback编程ToggleButton(开关按钮)
的Callback编程functionvarargout=togglebutton1_Callback(h,eventdata,handles)button_state=get(h,'Value');ifbutton_state==get(h,'Max')%togglebuttonispressedelseifbutton_state==get(h,'Min')%togglebuttonisnotpressedend为按纽加图像a(:,:,1)=rand(16,128);a(:,:,2)=rand(16,128);a(:,:,3)=rand(16,128);set(h,'CData',a)RadioButton(单选按钮)
的编程RadioButton选还是没有被选由Value属性值来确定Value=Max,被选.Value=Min,没有被选为了使得一组RadioButton中只有一个被选,要求用户编程设置其他的RadioButton的Value值为零,被选中的那个R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (正式版)DB37∕T 480-2010 《日光温室无公害菜豆生产技术规程》
- 产后恢复期的护理要点
- 安全生产管理措施专项方案
- 江西省宜春市宜丰中学2023-2024学年高三上学期开学考试政治试题(解析版)
- 安全技术措施方案
- 安全措施方案
- 江苏省苏州市区重点名校2026年初三10份综合模拟检测试题含解析
- 山东省青岛市集团校联考2026年普通高中初三教学质量检测试题(一)语文试题含解析
- 四川省营山县市级名校2025-2026学年初三第五次检测试题英语试题含解析
- 浙江省绍兴市越城区袍江中学2026届初三第一次联合考试英语试题理试卷含解析
- DL∕T 1683-2017 1000MW等级超超临界机组运行导则
- DL-T-710-2018水轮机运行规程
- 境内汇款申请书模板
- 在线网课学习知道《秀场内外-走进服装表演艺术(武汉纺织大学)》单元测试考核答案
- (正式版)JBT 3300-2024 平衡重式叉车 整机试验方法
- 加利福尼亚批判性思维技能测试后测试卷班附有答案
- 养老院健康档案模板
- 天然气开采行业概况
- 手术室护士与麻醉的护理配合试题
- 幼儿园混龄户外活动方案
- 蜡疗操作评分标准
评论
0/150
提交评论