MATLAB中的set函数

1.MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值成为属性值。例如,LineStyle是曲线对象的一个属性名,它的值决定着线型,取值可以是'-' 、':'、'-.'、'--'或'none'。2.属性的操作    set函数的调用格式为:    set(句柄,属性名1,属性值1,属性名2,属性值2,…)例子:clearx=0:0.2:12;y1=bessel(1,x);y2=bessel(2,x);y3=bessel(3,x);h=plot(x,y1,x,y2,x,y3);set(h,{'LineWidth'},{2;5;8}) %set(h,{'LineWidth'},{2})==set(h,'LineWidth',2),将所有线宽设置为2set(h,{'Color'},{'r';'g';'b'},{'LineStyle'},{'--';':';'-.'}) %设置颜色和线宽axis([0 12 -0.5 1]) %设置坐标轴范围grid onX=0:1:12;Y=-0.5:0.25:1;set(gca,'xtick',X,'ytick',Y) %设置网格的显示格式,gca获取当前figure的句柄set(xlabel('Time'),'FontSize',12,'Color','r')y=ylabel('Amplitude');set(y,'FontSize',12,'Color','g')legend(h,'First','Second','Third') %添加图例title('Bessel Functions') %添加标题[y,ix]=min(y1); %找到y1的最小值以及改值的下标,赋给y和ixtext(x(ix),y,'First Min \rightarrow','HorizontalAlignment','right') %插入文本 具体可改哪些属性值---------------------------------------------------------------------------------------这两天在看句柄式图形方面的东西,以下是我在看书过程中整理的学习笔记,比较详细的介绍了句柄以及与其密切相关的各种图形对象和它们的属性。希望能对初学Matlab界面设计的朋友们有所帮助。GUI学习笔记:句柄式图形常用函数:(1)get(h)返回句柄值h所指定的图形对象的所有属性名称与相对应的属性值(2)a = get(h)返回由句柄值h所指定的图形对象的属性结构数组,并且该数组的字段名称就是该对象的属性名称。(3)a = get(0,'factory')返回所有能由用户设置的属性的默认定义值。(4)a = get(0,'FactoryObjectTypePropertyName1','FactoryObjectTypePropertyName2',...)返回指定对象类型指定的属性值,输入参数FactoryObjectTypePropertyName为一个关键词,由字符Factory与图形对象类型(如Figure)还有属性名称(如Color)组成。a = get(0,'factoryFigureColor')返回Figure对象的Color属性值。(5)a = get(h,'DefaultObjectTypePropertyName1','DefaultObjectTypePropertyName1',...)返回句柄值为h的对象指定属性的默认值。如“DefaultFigureColor”。(6)a = get(h,'default')列出h对象的所有属性的默认属性值(7)a = set(h)返回句柄值h所指定的图形对象的所有属性名称对应的可设置属性值,a为结构数组,存储对象的属性名称,其字段值为相对应的属性值。属性值中用{}括起来的表示默认值。(8)set(h,a)使用指定的属性值来设置由句柄值h所指定的对象属性,a为结构数组,其字段名称为对象的属性名称,字段值为相对应的属性值。(9)a = set(0,'factory')返回那些用户可以设置默认值的所有对象的属性,同时显示可设置的属性值。(10)a=set(0,'FactoryObjectTypePropertyName')返回所有对象中指定的属性名称FactoryObjectTypePropertyName的所有可能的属性值。(11)a = set(h,'属性名','属性值')设置句柄值为h的对象的与属性名对应的属性值。(12)set(h,'DefaultObjectTypePropertyName1','DefaultObjectTypePropertyName2',...)对句柄值为h的对象设置特定属性名称的属性默认值。(13)H = findobj;返回Root对象与其所有子对象的句柄值(14)H = findobj(h);返回h变量的句柄值(15)H = findobj(’属性名称‘,’属性值‘);依据对象的属性名称和属性值找出匹配的对象句柄值。(16)H = findobj(ObjectHandles,’属性名称‘,’属性值‘);根据限定的对象列表找出与对象的属性名称和属性值匹配的对象句柄值(17)gcf返回当前Figure对象的句柄值gca返回当前axes对象的句柄值gco返回当前鼠标单击的句柄值,该对象可以是除root对象外的任意图形对象,并且Matlab会把当前图形对象的句柄值存放在Figure的CurrentObject属性中Figure对象的属性篇(1).^是矩阵每个元素的幂乘,^是数的幂乘。(2)set(handle)列出句柄值为handle的对象的所有属性get(handle)除列出上述属性外,还列出可以设置的属性reset(handle)将所有属性改为默认值delete(handle)删除句柄值为handle的图形对象(3)利用set(handle,‘属性名称’)获得句柄值为handle的对象的属性名称下所有可设置的属性值set(gcf,'units):得到[ inches | centimeters | normalized | points | {pixels} | characters ],其中,大括号中是默认值(4)clf reset;将窗口关闭,并重新设置其属性为默认值。(5)Closerequestfcn,有效值为字符串或函数句柄(前加@)当关闭绘图窗口或离开Matlab时,就会定义Closerequestfcn定义的函数(6)createfcn,当Matlab建立一个对象时(如为figure对象,即打开一个绘图窗口),就会触发createfcn所定义的callback程序。如set(0,'defaultfigurecreatefcn','set(gcbo,''integerhandle'',''off'')');即设置了根对象的默认值,使每次建立figure对象时,都会指定一个非整数的句柄值。(在用户未指定句柄值时)(7)将当前窗口中在键盘上按下的按键名显示出来。set(gcf,'keypressfcn','get(gcf,''currentcharacter'')')(8)color有效值为colorspeccolorspec表:RGB 简称[110] y_yellow[101] m_magenta[011] c_cyan[100] r_red[010] g_green[001] b_blue[111] w_white[000] k_black(9)linspace(a,b,c):a初始b结束c线性分段次数linspace(a,b)则默认100次(10)CurrentObject:有效值为图形对象句柄值:返回绘图窗口内当前被鼠标选取的对象的句柄值(11)currentPoint:有效值[x-坐标,Y-坐标]返回绘图窗口中最后单击鼠标的位置,用get(gcf,'currentpoint')就会返回当前在窗口中单击鼠标的位置(12)DeleteFcn:有效值:字符串或函数句柄,删除对象(这里为figure)时会触发Deletefcn所定义的Callback程序。(13)Dockcontrols:有效值为on/off,默认值on,控制窗口的嵌入效果是否可用。(14)Hittest:有效值on/off,决定能否用鼠标选取对象为当前对象。(15)Integerhandle:有效值on/off,决定Figure对象句柄值的类型为整数或浮点小数。(16)Interruptible:有效值on/off,执行过程中需要中断程序而优先执行其他程序时要设该属性为on。即Interrupptible属性是用以控制当Callback执行时是否能被其他事件(如此时鼠标按下其他控制对象)而中断,on是会中断,off时会执行完当前Callback,再去执行其他Callback。(17)Keypressfcn:有效值为字串或函数句柄。当用户在figure窗口中按下键盘的任意键时,就会执行Keypressfcn所定义的Callback程序。figure('keypressfcn','fprintf(''当前按下键盘上的%c键\n'',get(gcf,''currentcharacter''))')在这个figure窗口中按下键盘上的按键时就会立即返回对应的字符,依据这个效果就可以决定当字符键被按下时所要执行的操作。当这个属性指定的值是一个函数句柄时,Matlab就会将这个函数视为一个结构,包含下列字段——character(以当前键盘上按下的按键显示的字符来当作结果),modifier(包含一个或多个识别键盘上按下按键字符名称的细胞数组(如Ctrl,Alt,Shift等),key(显示被按下的键)。(18)WindowButtonDownFcn:有效值为字符串或函数句柄当鼠标在绘图窗口内按下鼠标任意键时,将触发WindowButtonDownFcn所定义的Callback以产生相对应的操作。(19)WindowButtonMotionFcn:有效值为字符串或函数句柄当鼠标在绘图窗口内按住鼠标任意键移动,将触发WindowButtonMotionFcn所定义的Callback以产生相对应的操作。(20)WindowButtonUpFcn:有效值为字符串或函数句柄当鼠标在绘图窗口内释放鼠标任意键时,将触发WindowButtonUpFcn所定义的Callback以产生相对应的操作。(21)CurrentAxes有效值为当前坐标轴的句柄值,返回当前的坐标轴句柄值。假设某坐标轴句柄值为a_h,可以使用axes(a_h)或set(gcf,'currentaxes',a_h)这两种方式,制定句柄值为a_h的坐标轴为当前坐标轴。(22)CurrentCharacter:有效值为任意字符,返回用户在绘图窗口中最后输入的一个字符,即刚在键盘上按下的字符键将存储到Currentcharacter中,一般于Keyppressfcn合用。(23)Currentobject有效值为图形对象的句柄值,返回绘图窗口内当前被鼠标选取的对象的句柄值。(24)有效值为两元素的向量,[X坐标,Y坐标]返回绘图窗口中最后单击鼠标的位置,与Windowbuttonmotionfcn,Windowbuttonupfcn合用。使用get(gcf,'currentpoint')就会返回当前在窗口中单击鼠标的位置。Axes对象的属性(1)title('new','color','r');给坐标轴命名为new,红色title({'this title','has 2 '});命名为两行的标题(2)Units:有效值为pixels/normalized/inches/centimeters/points/characters决定各种位置属性的度量单位,相对于窗口左下角为基准。当设置为Pixels时,以像素为单位;当设置为normalized时,以坐标为单位,屏幕的左下角为[0,0],右上角为[1.0,1.0]。(3)grid on:在图像中显示网格。(4)children:控制axes对象的子对象,即image\light\line\patch\rectangle\surface和text等对象,可通过get(gca,'children')来返回当前坐标轴的子对象构成的句柄值向量。(5)字体属性:Fontangle字体角度(正常normal或斜体italic/oblique)Fontname字体名称fontsize字体大小(单位由Fontunits决定)fontunits字体单位(points/normalized/inches/centimeters/pixels)fontweight字体粗细(normal/bold/light/demi)gridlinestyle决定坐标轴网格线的样式,‘-’为实线‘- -’为虚线‘:’为点线‘-.’为点虚线plot(1:10);grid on;set(gca,'gridlinestyle','-.');将当前坐标轴显示的网格线为点-虚线(6)linewidth 定义X,Y和Z轴的轴线宽度(以点单位定义)(7)NextPlot:有效值为add|replace|replacechildren,默认为replaceadd表示使用当前的坐标轴,把新的图形对象加到此坐标轴中是一般保留的做法,replace表示重新设置坐标轴的所有属性(Position除外),也就是在绘图前会删除当前坐标轴和它的子对象。replacechildren表示移除当前坐标轴中所有子对象,但不重新设置坐标轴的所有属性(8)Outerposition决定坐标轴外边界的位置。由位置向量[left,bottom,width,height]组成,其中left,bottom表示相对于绘图窗口左下角的位置,width,height表示区域尺寸,默认为[0 0 1 1](9)Position由位置向量[left,bottom,width,height]组成,决定坐标轴位置(10)Tag定义本坐标轴的卷展栏,因为每一个对象都有自己唯一的识别码即tag,以方便findobj函数查找坐标轴句柄值。(11)visible决定坐标轴是否可见(12)set(gca,'xgrid','on')绘制X轴垂直网格线set(gca,'gridlinestyle',':','linewidth',3)设置网格线线条类型和宽度set(gca,'box','on')将图轴方框绘制出来(13)set(gca,'xscale','linear');将X轴刻度设为线性set(gca,'yscale','log');将Y轴刻度设为对数(14)disp()显示一个数组,但不显示其数组名称disp(' Corn Oats Hay')disp(rand(5,3))which results inCorn Oats Hay0.2113 0.8474 0.27490.0820 0.4524 0.88070.7599 0.8075 0.65380.0087 0.4832 0.48990.8096 0.6135 0.7741Pause:pause, by itself, causes M-files to stop and wait for you to press any key before continuing.实例:plot(1:10);set(gca,'yscale','log');disp('请按下Enter键');pauseset(gca,'Yscale','linear');本例是说按下Enter键将Y轴刻度由对数改为线性。(16)Xtick,Ytick,Ztick:控制X,Y,Z轴坐标刻度记号的位置,即控制坐标轴上刻度记号的位置以及每隔多少值会到下一个刻度记号的位置,同时还需要配合Xticklabel、Yticklabel、Zticklabel属性来调整。详细见例程。以下设置方式相同:set(gca,'Xticklabel',{'1';'10';'100'})set(gca,'Xticklabel','1|10|100')set(gca,'Xticklabel',[1;10;100])set(gca,'Xticklabel',['1 ';'10 ';'100'])(17)Findobj:查找Line对象当用户建立一个线对象时,就会触发Createfcn所定义的Callback产生相对应的操作;同样,若删除一个线对象时,就会触发DeleteFcn所定义的Callback产生相对应的操作。以下程序建立一个线对象,并设置DeleteFcn为一个问题对话框,当删除该线对象时,就会显示其问题对话框来询问用户。(1) clipping:有效值为on/off,默认值为on设置坐标轴土筐是否可以剪辑,如果设为off,则绘制线对象时可超出坐标轴的图框。(2)Linewidth:有效值为纯量(与向量相对,只有大小而无方向),点为单位。(3)Marker:有效值为字符,决定Line对象的记号类型,有+,o,*,.,x,s,d,等(4)Markersize:有效值为纯量,单位为点,Marker的大小。(5)UIcontextmenu:有效值为uicontextmenu对象的句柄值,定义与线对象相关联的uicontextmenu菜单,因此当用户将该线对象的属性UicontextMenu设置为相关联的uicontextmenu对象的Tag名称时,uicontextmenu就可以在该线对象上单击鼠标右键来显示uicontextmenu菜单。(6)Tag:有效值为字符串,定义改线对象的卷展栏(即标记)(7)Type:有效值为字符串(只读),此处为’line‘字符串。(8)Xdata,Ydata,Zdata:有效值为坐标数组,指定产生线条的数据点,若为2D环境则Xdata、Ydata需要有相同数目的数据,而Zdata为空矩阵;3D环境则Xdata,Ydata,Zdata三者都需要有相同数目的数据。例:x=0:5,y=x+10;line('xdata',x,'ydata',y);Patch对象patch函数不想其他高级区域建立函数(fill和area),只是简单地将patch对象添加到当前坐标轴中而已。使用:patch(X,Y,C)在当前的坐标轴中添加二维填充的patch对象,X和Y用以定义patch对象顶点的位置,若X,Y为矩阵,则Matlab按每一行的元素来产生多个多边形。例:x = [0 0;0 1;1 1];y = [1 1;2 2;2 1];z = [1 1;1 1;1 1];(x(1,1),y(1,1),z(1,1)为第一个面的第一个顶点,x(2,1),y(2,1),z(2,1)为第一个面的第二个顶点,以此类推)tcolor(1,1,1:3) = [1 1 1];tcolor(1,2,1:3) = [.7 .7 .7];patch(x,y,z,tcolor);(tcolor是一个1*2*3的三维矩阵)Surface对象surface可以建立一个surface对象,surface是由矩阵数据所在的列索引值为X坐标,而行索引值为Y坐标,并且矩阵的每个元素值为Z坐标。image对象image(C)将矩阵C当作一个图像来显示,C的每一个元素定义一个图像中矩阵线段的颜色。image(x,y,C)其中x与y为2元素的向量,分别指定X轴与Y轴卷展轴的范围。C为图像矩阵。text对象(1)text(x坐标,y坐标,'string')在图形中指定位置(x,y)显示字符串string。(2)Editing有效值为on/off,off时,用户在执行GUI操作时无法直接在该Text对象上进行编辑,改为on后,可以进行编辑。(3)HorizontalAlign 有效值为left/center/right决定Text对象中字符水平方向的对齐方式。(4)Interpreter有效值为tex/none,决定Text对象中是否可用Tex字符注释,当设置为Tex时,表示允许用户能够在String属性下输入Tex字符。以下为在窗口的 [.5 .5]点位置处建立一个text对象并且字体大小以16点来表示的一个方程式。(显示的是一个二重积分)text('interpreter','latex','string','∫x0∫ydF(u,v)∫0x∫ydF(u,v)','position',[.5 .5],'fontsize',16)(5)String有效值为字符串,表示要显示出来的字符串是什么。(6)verticalAlignme 有效值为top/cap/middle/baseline/bottom决定Text对象垂直对齐的方式。下面加载一个例子,是ilovematlab论坛一个斑竹的回复x=0:0.5:10;>> y1=sin(x);>> y2=cos(x);>> plot(x,y1,'r',x,y2,'g')>> findobj(gca,'color','r')不想要的曲线直接delete句柄就可以了 --------------------------------------------------------------------------------------- gcf 是返回当前被激活的窗口的图形对象的句柄。你可以认为它就指代当前窗口。figure(gcf)打开这个窗口。gca返回当前axes对象的句柄值gco返回当前鼠标单击的句柄值,该对象可以是除root对象外的任意图形对象,并且Matlab会把当前图形对象的句柄值存放在Figure的CurrentObject属性中Figure对象的属性篇

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容