日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

MATLAB 中gcf、gca 以及gco 的区别

發(fā)布時間:2023/12/13 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 MATLAB 中gcf、gca 以及gco 的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.三者的功能定義:

gcf 返回當前Figure 對象的句柄值
gca 返回當前axes 對象的句柄值
gco 返回當前鼠標單擊的句柄值,該對象可以是除root 對象外的任意圖形對象,并且Matlab 會把當前圖形對象的句柄值存放在Figure 的CurrentObject屬性中。

 

2.matlab下的圖形對象

圖形對象是用以顯示圖形和用戶界面元素的基本元素。下表列出了各種圖形對象。

對象 描述
Root 對計算機屏幕最高級的對象
Figure 用來顯示圖形和用戶界面的窗口
Axes 在窗口中顯示圖形的軸
Uicontrol 用戶界面控制。執(zhí)行一個對用戶交互作用的函數(shù)。
Uimenu 用戶定義窗口菜單
Uicontextmenu 右鍵單擊對象時彈出的菜單
Image 二維像素基礎(chǔ)圖
Light 影響斑點和表面對象著色的光源
Line 用于諸如plot, plot3, semilogx 等函數(shù)的線
Patch 帶邊緣的填充多邊形
Rectangle 二維形狀,從矩形到橢圓
Surface 由x-y 平面以上的數(shù)據(jù)值所作圖創(chuàng)建的矩陣數(shù)據(jù)的三維表示
Text 字符串

3. 圖形對象級別

  不同對象分布在一個樹形結(jié)構(gòu)級別里,反映它們的獨立性。例如,線對象是在軸對象的框架下的。依次,軸對象只存在于figure 對象中。要想對gcf、gca 以及gco 之間的區(qū)別進一步的了解,MATLAB 中的句柄圖形的了解是必要的,以下部分是MATLAB 句柄圖形中關(guān)于gcf、gca 以及gco的部分,供大家參考。

句柄圖形

  什么是句柄圖形?句柄圖形是對底層圖形例程集合的總稱,它實際上進行生成圖形的工作。這些細節(jié)通常隱藏在圖形M 文件的內(nèi)部,但如果想使用它們也是可得到的。

  MATLAB 用戶指南給人的一種印象是,句柄圖形非常復(fù)雜,只對熟練的高級用戶才有用。而實際上不是這樣的。句柄圖形可以被任何人用來改變MATLAB生成圖形的方式,不論是只想在一幅圖里做一點小變動,還是想做影響所有圖形輸出的全局變動。

  句柄圖形允許你定制圖形的許多特性,而這用高級命令和前幾章里描述的函數(shù)是無法實現(xiàn)的。例如,如果想用橘黃色來畫一條線,而不是plot 命令中可用的任何一種顏色,該怎么做呢?句柄圖形就可以提供一種方法。本章不對句柄圖形作詳細討論,因為那樣涉及問題太細。這里的目的只是對句柄圖形概念作基本了解,并提供足夠多的信息,使得即使是偶爾使用一下MATLAB 的用戶也可以利用句柄圖形。

  在這個背景下,在本章最后給出了關(guān)于句柄圖形對象屬性和它們的值,它不僅很有用也很有意義。

4. 誰需要句柄圖形?

  開始,我們要強調(diào)本章主要是針對那些不滿足于MATLAB 普通圖形特性的讀者。如果對所畫的圖形已經(jīng)很滿意,那么就跳過當前的討論。如果以后要定制
圖形,只要記住這里有可用的信息。

  現(xiàn)在,對于那些還在猶豫的用戶,我們要強調(diào)學(xué)習(xí)使用句柄圖形并不困難。如果只想改變圖形的標題字體,或者改變一個圖形窗口的背景顏色,那么,你不必成為一個句柄圖形的專家也可做到。另一方面,如果想定制圖形,并且要打算對圖形的每個可能方面進行控制,那么句柄圖形會為此提供強有力的工具。前面那些章提供的圖形功能被認為是高級的命令和函數(shù),包括plot,mesh,axis 及其它。這些函數(shù)是建立在底層函數(shù)和屬性的基礎(chǔ)上,總稱為句柄圖形

什么是句柄圖形對象

  句柄圖形是基于這樣的概念,即一幅圖的每一組成部分是一個對象,每一個對象有一系列句柄和它相關(guān),每一個對象有按需要可以改變的屬性。當今計算機行業(yè)最流行的術(shù)語之一便是對象這個詞。面向?qū)ο蟮木幊陶Z言,數(shù)據(jù)庫對象,操作系統(tǒng)和應(yīng)用程序接口都使用了對象的概念。一個對象可以被粗略地定義為由一組緊密相關(guān)、形成唯一整體的數(shù)據(jù)結(jié)構(gòu)或函數(shù)集合。在MATLAB中,圖形對象是一幅圖中很獨特的成分,它可以被單獨地操作。由圖形命令產(chǎn)生的每一件東西都是圖形對象。它們包括圖形窗口或僅僅說是圖形,還有坐標軸、線條、曲面、文本和其它。這些對象按父對象和子對象組成層次結(jié)構(gòu)。

  計算機屏幕是根對象,并且是所有其它對象的父親。圖形窗口是根對象的子對象;坐標軸和用戶界面對象(在下一章討論)是圖形窗口的子對象;線
條、文本、曲面、補片和圖象對象是坐標軸對象的子對象。

  根可包含一個或多個圖形窗口,每一個圖形窗口可包含一組或多組坐標軸。所有其它的對象(除了在下一章討論的uicontrol 和uimenu 外)都是坐標軸的子對象,并且在這些坐標軸上顯示。所有創(chuàng)建對象的函數(shù)當父對象或?qū)ο蟛淮嬖跁r,都會創(chuàng)建它們。例如,如果沒有圖形窗口,plot(rand(size([1:10])))函數(shù)會用缺省屬性創(chuàng)建一個新的圖形窗口和一組坐標軸,然后在這組坐標軸內(nèi)畫線。

句柄對象

  假設(shè)已打開了三個圖形窗口,其中兩個有兩幅子圖。并要改變其中一幅子圖坐標軸內(nèi)一條線的顏色,如何認定想要改變的那條線?在MATLAB 中,每一個對象都有一個數(shù)字來標識,叫做句柄。
  每次創(chuàng)建一個對象時,就為它建立一個唯一的句柄。計算機屏幕作為根對象常常是0。? Hf_fig=figure 命令建立一個新的圖形窗口,變量Hf_fig 中返回它
的句柄值。圖形窗口的句柄為整數(shù),通常顯示在圖形窗口標題條中。其它對象句柄是MATLAB 滿精度的浮點值。
  MATLAB 可以用來獲得圖形、坐標軸和其它對象的句柄。例如,Hf_fig=gcf返回當前圖形窗口的句柄值,而 Ha_ax=gca 返回當前圖形窗口內(nèi)當前坐標軸
的句柄值。這些函數(shù)和其它對象操作的工具在本章以后討論。

  為了提高可讀性,在本書中包含句柄對象的變量取名以大寫的H 開頭,跟之以一個辨識對象類型的字母,然后是一個下劃線,最后是一個或幾個描述符。
因此,Hf_fig 是一個圖形窗口的句柄,Ha_ax1 是坐標軸對象的句柄,而Ht_title是一個文本對象的句柄。當對象類型不知道時,用字母x,比如Hx_obj。雖然
句柄變量可以取任意名字,遵循這種規(guī)則使得能在M 文件中很容易找到句柄變量。

  所有產(chǎn)生對象的MATLAB 函數(shù)都為所建立的每個對象返回一個句柄(或句柄的列向量)。這些函數(shù)包括plot,mesh,surf 及其它。有一些圖形由一個以
上對象組成。比如,一個網(wǎng)格圖由一個曲面組成,它只有一個句柄;而waterfall圖形由許多線條對象組成,每個線條對象都有各自的句柄。
例如,? Hl_wfall=waterfall(peaks(20)) 對線條返回一個包含著2 得了一個對象的句柄,它的對象類型可以通過查詢對象的 'Type' 屬性來獲得。該屬性是
一個字符串對象名,比如 'figure' ,'axes' 或 'text' 。例如:

  x_type=get(Hx_obj, 'Type' )

  MATLAB 中的函數(shù)gcf,gca 和gco 是很好的例子,它們說明如何利用句柄圖形來獲得有關(guān)對象的信息。函數(shù)gcf 獲得根對象的 'CurrentFigure' 的屬性
值,即是當前圖形的句柄。gcf M 文件包含:

function h=gcf()
% GCF Get current figure handle.
% H=GCF returns the handle to the current figure.The current fugure is the figure(graphics window)that graphics commands like PLOT,TITLE,SURF,etc.draw to if issued.
%
% Use the commands FIGURE to change the current figure to a diffent figure,or to create new % ones.
%
% See also FIGURE,CLOSE,CLF,GCA.
% Copyright (c) 1984-94 by The MathWorks,Inc.
h=get(0, 'CurrentFigure' );

類似的,函數(shù)gca 返回當前圖形的 'CurrentAxes' 屬性值,它的M 文件描 述如下。
function h=gca() % GCA Get current axis handle. % H=GCA returns the handle to the current axis.The current axis is the axis that graphics % command like PLOT,TITLE,SURF,etc.draw to if issued. % % Use the commands AXES or SUBPLOT to change the current axis to a different axis,or to % create new ones. % see also AXES,SUBPLOT,DELETE,CLA,HOLD,GCF. % Copyright (c) 1984-94 by The MathWorks,Inc.h=get(get(0, 'CurrentFigure' ), 'CurrentAxes' );
函數(shù)gco 也相同,只是它在試圖獲得當前對象之前先檢查圖形是否存在。注意函數(shù)gcf 和gca 能促使建立相關(guān)的對象,如果它們不存在的話。如下所示的函數(shù)gco,它先檢查子對象( 'Children' )是否存在,如果不存在,就不創(chuàng)建圖形對象。
function object=gco(figure)
%GCO Handle of current object. % OBJECT=GCO returns the current object in the current figure. % % OBJECT=GCO(FIGURE) returns the current object in figure FIGURE. % % The current object for a given figure is the last object clicked on with mouse. %Copyright (c) 1984-94 by The MathWorks,Inc.
if isempty(get(0, 'Children' )) object=[ ]; return; end; if (nargin==0) figure=get(0, 'CurrentFigure' ); end object=get(figure, 'CurrentObject' ); 當需要一些除了 'CurrentFigure' 、 'CurrentAxes' 和 'CurrentObject' 之外的某些東西時,可以用函數(shù)get 來獲得一個對象的子對象的句柄向量。例如: Hx_kids=get(gcf, 'Children' )返回一個向量,它包含當前圖形子對象的句柄。 可以用獲得子對象 'Children' 句柄的技術(shù)徹底搜索句柄圖形的層次結(jié)構(gòu)中來找到所要的對象。例如,在畫出一些數(shù)據(jù)后,尋找綠色線條句柄的問題。 x=-pi:pi/20:pi; % create some data y=sin(x); z=cos(x); plot(x,y, 'r' ,x,z, 'g' ); % plot two lines in red and green Hl_lines=get(gca, 'Children' ); % get the line handles for k=1:size(Hl_lines) % find the green line if get(Hl_lines(k), 'Color' )==[0 1 0] Hl_green=Hl_lines(k) end end Hl_green= 58.0001

  

總結(jié)

以上是生活随笔為你收集整理的MATLAB 中gcf、gca 以及gco 的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。