有一段時間沒寫博客,一週4篇文章都堅持不下來,不知道寫哪一個方面的內容,寫研究相關就怕論文查重查到,其餘方面也沒太多時間去學。仍是花時間多學點其餘方面。廢話到此,很早就作過matlab gui相關,如今想作一個論文的系統演示,不少東西又忘了又沒有記錄,再熟悉一次又得花大功夫,因此在這裏系統的記錄下。編程
學習GUI最好的材料固然是matlab的官方文檔了,本文也是按照相應的方式的來寫的。GUI就是簡單的用戶界面和對這些界面元素的響應,因此主要包含兩塊內容一是界面的設計,二是對控件元素的代碼的編寫。ide
建立GUI的方式有兩種函數
這個就比較簡單,就是在一個交互界面上拖動元素,排列組合生成界面,而後對每一個控件寫上相應的響應代碼(callback函數)。下面展現了在matlab R2013上一個交互建立GUI的界面。左邊是各類能夠利用的控件,而右邊是一整塊能夠畫圖的畫布,能夠把各類控件放在上面。保存fig後會自動生成對應控件的callback函數。佈局
寫一個程序文件定義好每一個控件的屬性和行爲,當用戶運行這個文件時,matlab會建立一個圖形界面。並生成相應的組件,可以處理用戶的交互。運行並不會每次保存界面圖形而是每次運行都是從新建立一個。入門的推薦使用第一種方式。學習
這個是matlab提供的一個例子,打開guide界面後,顯示如上,爲了可以將控件的文本顯示在控件上,經過設置File > Preferences > GUIDE. 選擇 Show names in component palette. 點擊 OK.就能夠了ui
這樣控件的名稱就會在底下顯示出來,更直觀和容易選擇。按照simple_GUI 上的提示將全部控件添加到界面上,能夠經過屬性窗口來設置屬性。好比更更名字,改變大小等。也能夠經過對齊方式來對齊控件,使佈局更加美觀整潔。編碼
爲部件編寫的代碼主要在回調函數裏編寫。因此首先要對回調函數有個瞭解。spa
回調函數是你爲GUI特定部件寫的函數。回調函數可以經過響應部件上的事件來控制部件的行爲。這些行爲如:按下按鍵,選擇菜單等。這就是所謂事件驅動編程。當你建立好GUI保存以後就會自動生成對應的一系列回調函數,這些回調函數都是隻有一個函數名和參數列表,裏面的代碼須要本身編寫。那要如何找到某個部件對應的callback函數,只要在GUI界面,右鍵選擇view callback便可。設計
編寫回調函數就如同通常函數那樣編寫,你在某個按鍵下編寫的回調函數就是當這一按鍵按下時會執行的一些代碼。注意一點,若是某個變量想要在其餘的回調函數裏面使用,那麼能夠經過設置這一變量爲global全局變量。這一變量在其餘函數裏就能夠直接使用。取得某個部件的值,好比Check Box,Edit Text,Radio Button等。主要是經過取得部件的句柄來實現的。3d
如
button_state = get(hObject,'Value');
user_string = get(hObject,'String');
等