MATLAB中的set函數(shù)

1.MATLAB給每種對(duì)象的每一個(gè)屬性規(guī)定了一個(gè)名字,稱為屬性名,而屬性名的取值成為屬性值。例如,LineStyle是曲線對(duì)象的一個(gè)屬性名,它的值決定著線型,取值可以是'-' 、':'、'-.'、'--'或'none'。2.屬性的操作????set函數(shù)的調(diào)用格式為:????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),將所有線寬設(shè)置為2set(h,{'Color'},{'r';'g';'b'},{'LineStyle'},{'--';':';'-.'}) %設(shè)置顏色和線寬axis([0 12 -0.5 1]) %設(shè)置坐標(biāo)軸范圍grid onX=0:1:12;Y=-0.5:0.25:1;set(gca,'xtick',X,'ytick',Y) %設(shè)置網(wǎng)格的顯示格式,gca獲取當(dāng)前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') %添加標(biāo)題[y,ix]=min(y1); %找到y(tǒng)1的最小值以及改值的下標(biāo),賦給y和ixtext(x(ix),y,'First Min \rightarrow','HorizontalAlignment','right') %插入文本?具體可改哪些屬性值---------------------------------------------------------------------------------------這兩天在看句柄式圖形方面的東西,以下是我在看書(shū)過(guò)程中整理的學(xué)習(xí)筆記,比較詳細(xì)的介紹了句柄以及與其密切相關(guān)的各種圖形對(duì)象和它們的屬性。希望能對(duì)初學(xué)Matlab界面設(shè)計(jì)的朋友們有所幫助。GUI學(xué)習(xí)筆記:句柄式圖形常用函數(shù):(1)get(h)返回句柄值h所指定的圖形對(duì)象的所有屬性名稱與相對(duì)應(yīng)的屬性值(2)a = get(h)返回由句柄值h所指定的圖形對(duì)象的屬性結(jié)構(gòu)數(shù)組,并且該數(shù)組的字段名稱就是該對(duì)象的屬性名稱。(3)a = get(0,'factory')返回所有能由用戶設(shè)置的屬性的默認(rèn)定義值。(4)a = get(0,'FactoryObjectTypePropertyName1','FactoryObjectTypePropertyName2',...)返回指定對(duì)象類型指定的屬性值,輸入?yún)?shù)FactoryObjectTypePropertyName為一個(gè)關(guān)鍵詞,由字符Factory與圖形對(duì)象類型(如Figure)還有屬性名稱(如Color)組成。a = get(0,'factoryFigureColor')返回Figure對(duì)象的Color屬性值。(5)a = get(h,'DefaultObjectTypePropertyName1','DefaultObjectTypePropertyName1',...)返回句柄值為h的對(duì)象指定屬性的默認(rèn)值。如“DefaultFigureColor”。(6)a = get(h,'default')列出h對(duì)象的所有屬性的默認(rèn)屬性值(7)a = set(h)返回句柄值h所指定的圖形對(duì)象的所有屬性名稱對(duì)應(yīng)的可設(shè)置屬性值,a為結(jié)構(gòu)數(shù)組,存儲(chǔ)對(duì)象的屬性名稱,其字段值為相對(duì)應(yīng)的屬性值。屬性值中用{}括起來(lái)的表示默認(rèn)值。(8)set(h,a)使用指定的屬性值來(lái)設(shè)置由句柄值h所指定的對(duì)象屬性,a為結(jié)構(gòu)數(shù)組,其字段名稱為對(duì)象的屬性名稱,字段值為相對(duì)應(yīng)的屬性值。(9)a = set(0,'factory')返回那些用戶可以設(shè)置默認(rèn)值的所有對(duì)象的屬性,同時(shí)顯示可設(shè)置的屬性值。(10)a=set(0,'FactoryObjectTypePropertyName')返回所有對(duì)象中指定的屬性名稱FactoryObjectTypePropertyName的所有可能的屬性值。(11)a = set(h,'屬性名','屬性值')設(shè)置句柄值為h的對(duì)象的與屬性名對(duì)應(yīng)的屬性值。(12)set(h,'DefaultObjectTypePropertyName1','DefaultObjectTypePropertyName2',...)對(duì)句柄值為h的對(duì)象設(shè)置特定屬性名稱的屬性默認(rèn)值。(13)H = findobj;返回Root對(duì)象與其所有子對(duì)象的句柄值(14)H = findobj(h);返回h變量的句柄值(15)H = findobj(’屬性名稱‘,’屬性值‘);依據(jù)對(duì)象的屬性名稱和屬性值找出匹配的對(duì)象句柄值。(16)H = findobj(ObjectHandles,’屬性名稱‘,’屬性值‘);根據(jù)限定的對(duì)象列表找出與對(duì)象的屬性名稱和屬性值匹配的對(duì)象句柄值(17)gcf返回當(dāng)前Figure對(duì)象的句柄值gca返回當(dāng)前axes對(duì)象的句柄值gco返回當(dāng)前鼠標(biāo)單擊的句柄值,該對(duì)象可以是除root對(duì)象外的任意圖形對(duì)象,并且Matlab會(huì)把當(dāng)前圖形對(duì)象的句柄值存放在Figure的CurrentObject屬性中Figure對(duì)象的屬性篇(1).^是矩陣每個(gè)元素的冪乘,^是數(shù)的冪乘。(2)set(handle)列出句柄值為handle的對(duì)象的所有屬性get(handle)除列出上述屬性外,還列出可以設(shè)置的屬性reset(handle)將所有屬性改為默認(rèn)值delete(handle)刪除句柄值為handle的圖形對(duì)象(3)利用set(handle,‘屬性名稱’)獲得句柄值為handle的對(duì)象的屬性名稱下所有可設(shè)置的屬性值set(gcf,'units):得到[ inches | centimeters | normalized | points | {pixels} | characters ],其中,大括號(hào)中是默認(rèn)值(4)clf reset;將窗口關(guān)閉,并重新設(shè)置其屬性為默認(rèn)值。(5)Closerequestfcn,有效值為字符串或函數(shù)句柄(前加@)當(dāng)關(guān)閉繪圖窗口或離開(kāi)Matlab時(shí),就會(huì)定義Closerequestfcn定義的函數(shù)(6)createfcn,當(dāng)Matlab建立一個(gè)對(duì)象時(shí)(如為figure對(duì)象,即打開(kāi)一個(gè)繪圖窗口),就會(huì)觸發(fā)createfcn所定義的callback程序。如set(0,'defaultfigurecreatefcn','set(gcbo,''integerhandle'',''off'')');即設(shè)置了根對(duì)象的默認(rèn)值,使每次建立figure對(duì)象時(shí),都會(huì)指定一個(gè)非整數(shù)的句柄值。(在用戶未指定句柄值時(shí))(7)將當(dāng)前窗口中在鍵盤(pán)上按下的按鍵名顯示出來(lái)。set(gcf,'keypressfcn','get(gcf,''currentcharacter'')')(8)color有效值為colorspeccolorspec表:RGB 簡(jiǎn)稱[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結(jié)束c線性分段次數(shù)linspace(a,b)則默認(rèn)100次(10)CurrentObject:有效值為圖形對(duì)象句柄值:返回繪圖窗口內(nèi)當(dāng)前被鼠標(biāo)選取的對(duì)象的句柄值(11)currentPoint:有效值[x-坐標(biāo),Y-坐標(biāo)]返回繪圖窗口中最后單擊鼠標(biāo)的位置,用get(gcf,'currentpoint')就會(huì)返回當(dāng)前在窗口中單擊鼠標(biāo)的位置(12)DeleteFcn:有效值:字符串或函數(shù)句柄,刪除對(duì)象(這里為figure)時(shí)會(huì)觸發(fā)Deletefcn所定義的Callback程序。(13)Dockcontrols:有效值為on/off,默認(rèn)值on,控制窗口的嵌入效果是否可用。(14)Hittest:有效值on/off,決定能否用鼠標(biāo)選取對(duì)象為當(dāng)前對(duì)象。(15)Integerhandle:有效值on/off,決定Figure對(duì)象句柄值的類型為整數(shù)或浮點(diǎn)小數(shù)。(16)Interruptible:有效值on/off,執(zhí)行過(guò)程中需要中斷程序而優(yōu)先執(zhí)行其他程序時(shí)要設(shè)該屬性為on。即Interrupptible屬性是用以控制當(dāng)Callback執(zhí)行時(shí)是否能被其他事件(如此時(shí)鼠標(biāo)按下其他控制對(duì)象)而中斷,on是會(huì)中斷,off時(shí)會(huì)執(zhí)行完當(dāng)前Callback,再去執(zhí)行其他Callback。(17)Keypressfcn:有效值為字串或函數(shù)句柄。當(dāng)用戶在figure窗口中按下鍵盤(pán)的任意鍵時(shí),就會(huì)執(zhí)行Keypressfcn所定義的Callback程序。figure('keypressfcn','fprintf(''當(dāng)前按下鍵盤(pán)上的%c鍵\n'',get(gcf,''currentcharacter''))')在這個(gè)figure窗口中按下鍵盤(pán)上的按鍵時(shí)就會(huì)立即返回對(duì)應(yīng)的字符,依據(jù)這個(gè)效果就可以決定當(dāng)字符鍵被按下時(shí)所要執(zhí)行的操作。當(dāng)這個(gè)屬性指定的值是一個(gè)函數(shù)句柄時(shí),Matlab就會(huì)將這個(gè)函數(shù)視為一個(gè)結(jié)構(gòu),包含下列字段——character(以當(dāng)前鍵盤(pán)上按下的按鍵顯示的字符來(lái)當(dāng)作結(jié)果),modifier(包含一個(gè)或多個(gè)識(shí)別鍵盤(pán)上按下按鍵字符名稱的細(xì)胞數(shù)組(如Ctrl,Alt,Shift等),key(顯示被按下的鍵)。(18)WindowButtonDownFcn:有效值為字符串或函數(shù)句柄當(dāng)鼠標(biāo)在繪圖窗口內(nèi)按下鼠標(biāo)任意鍵時(shí),將觸發(fā)WindowButtonDownFcn所定義的Callback以產(chǎn)生相對(duì)應(yīng)的操作。(19)WindowButtonMotionFcn:有效值為字符串或函數(shù)句柄當(dāng)鼠標(biāo)在繪圖窗口內(nèi)按住鼠標(biāo)任意鍵移動(dòng),將觸發(fā)WindowButtonMotionFcn所定義的Callback以產(chǎn)生相對(duì)應(yīng)的操作。(20)WindowButtonUpFcn:有效值為字符串或函數(shù)句柄當(dāng)鼠標(biāo)在繪圖窗口內(nèi)釋放鼠標(biāo)任意鍵時(shí),將觸發(fā)WindowButtonUpFcn所定義的Callback以產(chǎn)生相對(duì)應(yīng)的操作。(21)CurrentAxes有效值為當(dāng)前坐標(biāo)軸的句柄值,返回當(dāng)前的坐標(biāo)軸句柄值。假設(shè)某坐標(biāo)軸句柄值為a_h,可以使用axes(a_h)或set(gcf,'currentaxes',a_h)這兩種方式,制定句柄值為a_h的坐標(biāo)軸為當(dāng)前坐標(biāo)軸。(22)CurrentCharacter:有效值為任意字符,返回用戶在繪圖窗口中最后輸入的一個(gè)字符,即剛在鍵盤(pán)上按下的字符鍵將存儲(chǔ)到Currentcharacter中,一般于Keyppressfcn合用。(23)Currentobject有效值為圖形對(duì)象的句柄值,返回繪圖窗口內(nèi)當(dāng)前被鼠標(biāo)選取的對(duì)象的句柄值。(24)有效值為兩元素的向量,[X坐標(biāo),Y坐標(biāo)]返回繪圖窗口中最后單擊鼠標(biāo)的位置,與Windowbuttonmotionfcn,Windowbuttonupfcn合用。使用get(gcf,'currentpoint')就會(huì)返回當(dāng)前在窗口中單擊鼠標(biāo)的位置。Axes對(duì)象的屬性(1)title('new','color','r');給坐標(biāo)軸命名為new,紅色title({'this title','has 2 '});命名為兩行的標(biāo)題(2)Units:有效值為pixels/normalized/inches/centimeters/points/characters決定各種位置屬性的度量單位,相對(duì)于窗口左下角為基準(zhǔn)。當(dāng)設(shè)置為Pixels時(shí),以像素為單位;當(dāng)設(shè)置為normalized時(shí),以坐標(biāo)為單位,屏幕的左下角為[0,0],右上角為[1.0,1.0]。(3)grid on:在圖像中顯示網(wǎng)格。(4)children:控制axes對(duì)象的子對(duì)象,即image\light\line\patch\rectangle\surface和text等對(duì)象,可通過(guò)get(gca,'children')來(lái)返回當(dāng)前坐標(biāo)軸的子對(duì)象構(gòu)成的句柄值向量。(5)字體屬性:Fontangle字體角度(正常normal或斜體italic/oblique)Fontname字體名稱fontsize字體大小(單位由Fontunits決定)fontunits字體單位(points/normalized/inches/centimeters/pixels)fontweight字體粗細(xì)(normal/bold/light/demi)gridlinestyle決定坐標(biāo)軸網(wǎng)格線的樣式,‘-’為實(shí)線‘- -’為虛線‘:’為點(diǎn)線‘-.’為點(diǎn)虛線plot(1:10);grid on;set(gca,'gridlinestyle','-.');將當(dāng)前坐標(biāo)軸顯示的網(wǎng)格線為點(diǎn)-虛線(6)linewidth 定義X,Y和Z軸的軸線寬度(以點(diǎn)單位定義)(7)NextPlot:有效值為add|replace|replacechildren,默認(rèn)為replaceadd表示使用當(dāng)前的坐標(biāo)軸,把新的圖形對(duì)象加到此坐標(biāo)軸中是一般保留的做法,replace表示重新設(shè)置坐標(biāo)軸的所有屬性(Position除外),也就是在繪圖前會(huì)刪除當(dāng)前坐標(biāo)軸和它的子對(duì)象。replacechildren表示移除當(dāng)前坐標(biāo)軸中所有子對(duì)象,但不重新設(shè)置坐標(biāo)軸的所有屬性(8)Outerposition決定坐標(biāo)軸外邊界的位置。由位置向量[left,bottom,width,height]組成,其中l(wèi)eft,bottom表示相對(duì)于繪圖窗口左下角的位置,width,height表示區(qū)域尺寸,默認(rèn)為[0 0 1 1](9)Position由位置向量[left,bottom,width,height]組成,決定坐標(biāo)軸位置(10)Tag定義本坐標(biāo)軸的卷展欄,因?yàn)槊恳粋€(gè)對(duì)象都有自己唯一的識(shí)別碼即tag,以方便findobj函數(shù)查找坐標(biāo)軸句柄值。(11)visible決定坐標(biāo)軸是否可見(jiàn)(12)set(gca,'xgrid','on')繪制X軸垂直網(wǎng)格線set(gca,'gridlinestyle',':','linewidth',3)設(shè)置網(wǎng)格線線條類型和寬度set(gca,'box','on')將圖軸方框繪制出來(lái)(13)set(gca,'xscale','linear');將X軸刻度設(shè)為線性set(gca,'yscale','log');將Y軸刻度設(shè)為對(duì)數(shù)(14)disp()顯示一個(gè)數(shù)組,但不顯示其數(shù)組名稱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.實(shí)例:plot(1:10);set(gca,'yscale','log');disp('請(qǐng)按下Enter鍵');pauseset(gca,'Yscale','linear');本例是說(shuō)按下Enter鍵將Y軸刻度由對(duì)數(shù)改為線性。(16)Xtick,Ytick,Ztick:控制X,Y,Z軸坐標(biāo)刻度記號(hào)的位置,即控制坐標(biāo)軸上刻度記號(hào)的位置以及每隔多少值會(huì)到下一個(gè)刻度記號(hào)的位置,同時(shí)還需要配合Xticklabel、Yticklabel、Zticklabel屬性來(lái)調(diào)整。詳細(xì)見(jiàn)例程。以下設(shè)置方式相同: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對(duì)象當(dāng)用戶建立一個(gè)線對(duì)象時(shí),就會(huì)觸發(fā)Createfcn所定義的Callback產(chǎn)生相對(duì)應(yīng)的操作;同樣,若刪除一個(gè)線對(duì)象時(shí),就會(huì)觸發(fā)DeleteFcn所定義的Callback產(chǎn)生相對(duì)應(yīng)的操作。以下程序建立一個(gè)線對(duì)象,并設(shè)置DeleteFcn為一個(gè)問(wèn)題對(duì)話框,當(dāng)刪除該線對(duì)象時(shí),就會(huì)顯示其問(wèn)題對(duì)話框來(lái)詢問(wèn)用戶。(1) clipping:有效值為on/off,默認(rèn)值為on設(shè)置坐標(biāo)軸土筐是否可以剪輯,如果設(shè)為off,則繪制線對(duì)象時(shí)可超出坐標(biāo)軸的圖框。(2)Linewidth:有效值為純量(與向量相對(duì),只有大小而無(wú)方向),點(diǎn)為單位。(3)Marker:有效值為字符,決定Line對(duì)象的記號(hào)類型,有+,o,*,.,x,s,d,等(4)Markersize:有效值為純量,單位為點(diǎn),Marker的大小。(5)UIcontextmenu:有效值為uicontextmenu對(duì)象的句柄值,定義與線對(duì)象相關(guān)聯(lián)的uicontextmenu菜單,因此當(dāng)用戶將該線對(duì)象的屬性UicontextMenu設(shè)置為相關(guān)聯(lián)的uicontextmenu對(duì)象的Tag名稱時(shí),uicontextmenu就可以在該線對(duì)象上單擊鼠標(biāo)右鍵來(lái)顯示uicontextmenu菜單。(6)Tag:有效值為字符串,定義改線對(duì)象的卷展欄(即標(biāo)記)(7)Type:有效值為字符串(只讀),此處為’line‘字符串。(8)Xdata,Ydata,Zdata:有效值為坐標(biāo)數(shù)組,指定產(chǎn)生線條的數(shù)據(jù)點(diǎn),若為2D環(huán)境則Xdata、Ydata需要有相同數(shù)目的數(shù)據(jù),而Zdata為空矩陣;3D環(huán)境則Xdata,Ydata,Zdata三者都需要有相同數(shù)目的數(shù)據(jù)。例:x=0:5,y=x+10;line('xdata',x,'ydata',y);Patch對(duì)象patch函數(shù)不想其他高級(jí)區(qū)域建立函數(shù)(fill和area),只是簡(jiǎn)單地將patch對(duì)象添加到當(dāng)前坐標(biāo)軸中而已。使用:patch(X,Y,C)在當(dāng)前的坐標(biāo)軸中添加二維填充的patch對(duì)象,X和Y用以定義patch對(duì)象頂點(diǎn)的位置,若X,Y為矩陣,則Matlab按每一行的元素來(lái)產(chǎn)生多個(gè)多邊形。例: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)為第一個(gè)面的第一個(gè)頂點(diǎn),x(2,1),y(2,1),z(2,1)為第一個(gè)面的第二個(gè)頂點(diǎn),以此類推)tcolor(1,1,1:3) = [1 1 1];tcolor(1,2,1:3) = [.7 .7 .7];patch(x,y,z,tcolor);(tcolor是一個(gè)1*2*3的三維矩陣)Surface對(duì)象surface可以建立一個(gè)surface對(duì)象,surface是由矩陣數(shù)據(jù)所在的列索引值為X坐標(biāo),而行索引值為Y坐標(biāo),并且矩陣的每個(gè)元素值為Z坐標(biāo)。image對(duì)象image(C)將矩陣C當(dāng)作一個(gè)圖像來(lái)顯示,C的每一個(gè)元素定義一個(gè)圖像中矩陣線段的顏色。image(x,y,C)其中x與y為2元素的向量,分別指定X軸與Y軸卷展軸的范圍。C為圖像矩陣。text對(duì)象(1)text(x坐標(biāo),y坐標(biāo),'string')在圖形中指定位置(x,y)顯示字符串string。(2)Editing有效值為on/off,off時(shí),用戶在執(zhí)行GUI操作時(shí)無(wú)法直接在該Text對(duì)象上進(jìn)行編輯,改為on后,可以進(jìn)行編輯。(3)HorizontalAlign 有效值為left/center/right決定Text對(duì)象中字符水平方向的對(duì)齊方式。(4)Interpreter有效值為tex/none,決定Text對(duì)象中是否可用Tex字符注釋,當(dāng)設(shè)置為T(mén)ex時(shí),表示允許用戶能夠在String屬性下輸入Tex字符。以下為在窗口的 [.5 .5]點(diǎn)位置處建立一個(gè)text對(duì)象并且字體大小以16點(diǎn)來(lái)表示的一個(gè)方程式。(顯示的是一個(gè)二重積分)text('interpreter','latex','string','∫x0∫ydF(u,v)∫0x∫ydF(u,v)','position',[.5 .5],'fontsize',16)(5)String有效值為字符串,表示要顯示出來(lái)的字符串是什么。(6)verticalAlignme 有效值為top/cap/middle/baseline/bottom決定Text對(duì)象垂直對(duì)齊的方式。下面加載一個(gè)例子,是ilovematlab論壇一個(gè)斑竹的回復(fù)x=0:0.5:10;>> y1=sin(x);>> y2=cos(x);>> plot(x,y1,'r',x,y2,'g')>> findobj(gca,'color','r')不想要的曲線直接delete句柄就可以了?---------------------------------------------------------------------------------------?gcf 是返回當(dāng)前被激活的窗口的圖形對(duì)象的句柄。你可以認(rèn)為它就指代當(dāng)前窗口。figure(gcf)打開(kāi)這個(gè)窗口。gca返回當(dāng)前axes對(duì)象的句柄值gco返回當(dāng)前鼠標(biāo)單擊的句柄值,該對(duì)象可以是除root對(duì)象外的任意圖形對(duì)象,并且Matlab會(huì)把當(dāng)前圖形對(duì)象的句柄值存放在Figure的CurrentObject屬性中Figure對(duì)象的屬性篇

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容