MATLAB中的set函數(shù)

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)自 http://www.kylen314.com/archives/412 不顯示坐標刻度: set(gca,...
    天之道天知道閱讀 2,207評論 0 2
  • matlab基本繪圖指令 plot 函數(shù)的基本使用語法格式為: 繪制一條曲線:plot(xdata, ydata,...
    貳條閱讀 9,046評論 0 15
  • 感恩父母的養(yǎng)育,感恩師長的教育,感恩生命的存在,感恩同修堅持學(xué)習(xí)!感恩女兒懂事,感恩姐姐的照顧,感恩播種財富種子。...
    妙愛閱讀 126評論 0 0
  • 請原諒戴上面具的的我張不開的口 不是無話可說,而是玫瑰刺傷了我的上顎, 靜靜扶住面具上段,沉思著當(dāng)下的感性, 失去...
    忘情入情客閱讀 204評論 0 0
  • 這是一堂高大上的課,聽得很燒腦。 總結(jié)一下感受: 一、學(xué)習(xí)必須是主動學(xué)習(xí)。主動學(xué)習(xí),是有目的地學(xué)習(xí),是有思考的學(xué)習(xí)...
    漫雨滋潤閱讀 249評論 0 0

友情鏈接更多精彩內(nèi)容