MATLAB 程式設計入門篇 握把式圖形與 GUI 設計

Slides:



Advertisements
Similar presentations
E-portfolio 個人履歷網站教學
Advertisements

MATLAB 程式設計 時間量測 清大資工系 多媒體資訊檢索實驗室.
1-1 MATLAB 小傳(1) 由MathWorks公司於1984年推出的 數學軟體。 名稱是由「矩陣實驗室﹙MATrix
运用Matlab GUI辅助大学物理实验 蒋志洁 中山大学 物理学院
PowerPoint圖形總合.
MATLAB 程式設計入門篇 方煒 台大生機系
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
9/28號專題報告 Web網頁遊戲 曾建瑋.
JDK 安裝教學 (for Win7) Soochow University
資料庫操作.
MATLAB 程式設計入門篇 與Excel試算表的整合
在NS-2上模擬多個FTP連線,觀察頻寬的變化
MATLAB 程式設計入門篇 GUIDE.
桌面環境簡介及IDE開發工具 Outline (一)什麼是Linux? (二)桌面環境系統簡介 (三)IDE開發工具.
類別(class) 類別class與物件object.
MATLAB 程式設計入門篇 握把式圖形與 GUI 設計
音訊 延伸學習 Audio Signal Processing and Recognition (音訊處理與辨識) 張智星
MATLAB 程式設計入門篇 握把式圖形與 GUI 設計
R教學 安裝RStudio 羅琪老師.
第7章 MATLAB图形用户界面设计 7.1 菜单设计 7.2 对话框设计 7.3 用户界面设计工具.
第八讲 MATLAB图形用 户界面设计.
安裝JDK 安裝Eclipse Eclipse 中文化
自由軟體介紹(一) 把flash通通帶回家 報告人:陳俊銘.
Merge Partners’ programs by Matlab
Visual Basic 物件導向程式設計簡介.
雲端運算的基石(2) 虛擬化技術實作(XP篇─上)
Java 程式設計 講師:FrankLin.
標籤、按鈕、工具列、狀態列 (Labels, Buttons, Tool Strips, and Status Strips)
VS.NET 2003 IDE.
建立一 function s (type) 可以用來繪製cyclic-harmonic curves
Ch20. 計算器 (Mac 版本).
PowerBuilder初探 張森.
網路程式設計期末project B 張芸菱.
MATLAB 程式設計入門篇 動畫製作.
精明使用互聯網教育計劃 K9下載及安裝教學篇.
第一章 直角坐標系 1-3 函數圖形.
MATLAB 程式設計入門篇 二維平面繪圖 (part2)
PowerPoint 2019/4/9.
第11章 MATLAB图形用户界面设计 11.1 菜单设计 11.2 对话框设计 11.3 图形用户界面设计工具
複製硬碟映像檔 & 在 VirtualBox 加入硬碟檔
EPSON 點矩陣印表機LQ-300+ 發票紙張格式設定.
張智星 清大資工系 多媒體檢索實驗室 Tree Net Construction 張智星 清大資工系.
安裝 / 操作 flashget SOP (以Win 7 作業系統為範例)
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
GUI Title and GUI Status
一用就上手3D列印設計 AUTODESK 123D Tinkercad 3D 設計網站
本章學習目標 學習三維繪圖的基本技巧 學習peaks() 函數的用法 學習二維與三維等高線圖的繪製 學習三維圖形的編修
撰寫MATLAB基礎財務程式 柯婷瑱.
GridView.
GridView操作 (II).
FTP使用教學 簡介: 軟體名稱:FileZilla 軟體性質:Freeware 版本: 繁體中文版
Flash 8:開口中 從Y:\ 複製『開口中.fla』到 D:\ 更改名稱為:s3x99 (你的班號) 雙按開啟檔案 2019年5月7日
肆-2情緒宣洩的方法 (使用滑鼠左鍵將字拖曳至正確圖底下)
張智星 (Roger Jang) 台大資工系 多媒體檢索實驗室
MiRanda Java Interface v1.0的使用方法
函數應用(二)與自定函數.
Dreamweaver 進階網頁製作 B 許天彰.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
5. 令圖畫動起來 Tween 功能介紹 移動效果 顏色漸變效果 形狀漸變效果 離開.
Brief Guide of FrontPage
國立台灣大學 關懷弱勢族群電腦課程 By 資訊工程 黃振修
安裝JDK 配置windows win7 環境變數
電子郵件簡報.
小畫家教學 電子版儲存於 學校網頁/學科資訊/電腦科
What is “this”? 在物件導向程式設計中,類別的定義就是在說明如果創建了“這個物件”的話,它會具有那些屬性與功能,以及這些功能是如何實現的。 而所謂的“這個物件”就以 this 來表示。 當我們在JavaScript與jQuery中寫 script 程式(函式)時,“誰”呼叫這個函式,這個“誰”就是該函式中所謂的.
多國語系 建國科技大學 資管系 饒瑞佶.
Chapter 4 Multi-Threads (多執行緒).
Develop and Build Drives by Visual C++ IDE
MATLAB 程式設計入門篇 程式除錯 張智星 (Roger Jang)
Presentation transcript:

MATLAB 程式設計入門篇 握把式圖形與 GUI 設計 張智星 (Roger Jang) jang@mirlab.org http://mirlab.org/jang 清大資工系 多媒體檢索實驗室

握把式圖形 (Handle Graphics) MATLAB 程式設計入門篇 握把式圖形 (Handle Graphics) 基本概念 每一個構成圖形的基本單位都可視為一個物件 (Object),例如: 曲線、曲面、圖軸、文字… 每個物件都有一個獨一無二的握把 (Handle),就像每一個人都有一個獨一無二的身份證字號 根據物件的握把,就可以存取圖形物件的所有性質

MATLAB 程式設計入門篇 圖形物件的階層結構 圖形物件階層結構(Hierarchy)

MATLAB 程式設計入門篇 階層結構的一個例子

MATLAB 程式設計入門篇 圖形物件的性質存取 可以分兩種方法: 以 MATLAB 所提供的圖形使用者介面(GUI,Graphical User Interface)進行圖形物件的性質存取 以 MATLAB 命令列進行圖形物件的性質存取

MATLAB 的性質編輯器 先畫完圖,再使用 propedit 開啟性質編輯器,例如 >>peaks; % 畫出 peaks 3D 圖 >>propedit; % 開啟性質編輯器 若不在命令列下達 propedit,也可以點選工具列上面的 圖示來開啟圖形編輯功能。

進行圖形編輯 啟動圖形編輯功能後,直接以滑鼠左鍵點選圖形物件(例如圖軸),然後點選右鍵選取所需要修改的性質,就可以達到修改圖形的效果。 MATLAB 程式設計入門篇 進行圖形編輯 啟動圖形編輯功能後,直接以滑鼠左鍵點選圖形物件(例如圖軸),然後點選右鍵選取所需要修改的性質,就可以達到修改圖形的效果。

圖形物件的性質存取 以命令列進行圖形物件的性質存取 set:設定某個性質的值 get:取得某個性質的值 MATLAB 程式設計入門篇 圖形物件的性質存取 以命令列進行圖形物件的性質存取 set:設定某個性質的值 get:取得某個性質的值 findobj:在握把式圖形的階層式結構中,找出您要的物件

set 範例 t = 0:0.1:4*pi; y = exp(-t/5).*sin(t); MATLAB 程式設計入門篇 set 範例 set範例:hg02.m t = 0:0.1:4*pi; y = exp(-t/5).*sin(t); h = plot(t, y); % h 為曲線的握把 set(h, 'Linewidth', 3); % 將曲線寬度改為 3 set(h, 'Marker', 'o');%將曲線的線標改成小圓圈 set(h, 'MarkerSize', 20);% 將線標的大小改成 20

set 範例 單獨使用 set(h),可以列出 h 的所有性質,以及這些性質的可能值和預設值,例如: MATLAB 程式設計入門篇 set 範例 單獨使用 set(h),可以列出 h 的所有性質,以及這些性質的可能值和預設值,例如: >> h=plot(humps); >> set(h, 'linestyle')

get 範例 >>get(h, 'LineWidth') % 取得曲線寬度 ans =3; MATLAB 程式設計入門篇 get 範例 get範例: >>get(h, 'LineWidth') % 取得曲線寬度 ans =3; >> get(h, 'Color') % 取得曲線顏色 ans = 0 0 1 >> get(h) %列出 h 的所有性質的值 …

findobj 範例 >> plot(rand(10,2)); % 畫出兩條曲線 MATLAB 程式設計入門篇 findobj 範例 findobj範例: >> plot(rand(10,2)); % 畫出兩條曲線 >> h=findobj(0, 'type', 'line') % 找出曲線的握把 h = 1.0051 74.0016 >> set(h, 'LineWidth', 3); % 經由握把將曲線寬度改為 3

MATLAB 程式設計入門篇 MATLAB GUI 程式設計 MATLAB GUI 程式設計的兩種方式 M 檔案 GUIDE 發展環境

M檔案 範例 M 檔案的GUI 設計 Uicontrol Mouse Events MATLAB 程式設計入門篇 M檔案 M 檔案的GUI 設計 Uicontrol Mouse Events 範例 xpsound、travel、truss、lorenz 等

uicontrol範例1 h = uicontrol; % 產生按鈕 set(h, 'String', '請按我!'); MATLAB 程式設計入門篇 uicontrol範例1 範例7-3:uicontrol01.m h = uicontrol; % 產生按鈕 set(h, 'String', '請按我!'); % 在按鈕表面加入文字「請按我!」 cmd = 'fprintf(''有人按我一下喔!\n''); '; % 定義按鈕被按後的反應指令 set(h, 'Callback',cmd); % 設定按鈕的反應指令

MATLAB 程式設計入門篇 uicontrol範例1

UI 控制物件 Uicontrol產生UI (User Interface) 控制物件 按鈕(Push Button) MATLAB 程式設計入門篇 UI 控制物件 Uicontrol產生UI (User Interface) 控制物件 按鈕(Push Button) 滑動棒(Sliding Bar) 圓形按鈕(Radio Button) 框架(Frame) 核計方塊(Check Box) 文字欄位(Edit Box) 列表式選單(List Menu) 下拉式選單(Popup Menu)

uicontrol範例2: uicontrol02.m close all % 關閉所有圖形視窗 MATLAB 程式設計入門篇 uicontrol範例2: uicontrol02.m close all % 關閉所有圖形視窗 uicontrol('style', 'push', 'position', [200 20 80 30]); uicontrol('style', 'slide', 'position', [200 70 80 30]); uicontrol('style', 'radio', 'position', [200 120 80 30]); uicontrol('style', 'frame', 'position', [200 170 80 30]); uicontrol('style', 'check', 'position', [200 220 80 30]); uicontrol('style', 'edit', 'position', [200 270 80 30]); uicontrol('style', 'list', 'position', [200 320 80 30], 'string', '1|2|3|4'); uicontrol('style', 'popup', 'position', [200 370 80 30], 'string', 'one|two|three');

MATLAB 程式設計入門篇 uicontrol範例2

MATLAB 程式設計入門篇 uicontrol的完整範例之一 另一個uicontrol的完整範例是 ui01.m

uicontrol的完整範例之二 ui01.m的潛在問題 解決方案:使用Switchyard Programming的程式設計概念 MATLAB 程式設計入門篇 uicontrol的完整範例之二 ui01.m的潛在問題 需要使用三個檔案,管理不方便。 使用的變數都在 MATLAB 基本工作空間中,容易造成變數的相衝及覆蓋。 解決方案:使用Switchyard Programming的程式設計概念 範例:ui02.m(請仔細研讀!) ‘tag’的使用

滑鼠事件 (Mouse Events) 主要滑鼠事件 WindowButtonDownFcn:定義滑鼠按鈕按下時反應指令 MATLAB 程式設計入門篇 滑鼠事件 (Mouse Events) 主要滑鼠事件 WindowButtonDownFcn:定義滑鼠按鈕按下時反應指令 WindowButtonMotionFcn:定義滑鼠移動時的反應指令 WindowButtonUpFcn:定義滑鼠按鈕釋放時的反應指令

滑鼠事件的使用 我們希望滑鼠先被按下,然後再移動滑鼠時,才會觸發移動時的反應指令。欲達到此效果,我們必須做下列事項: MATLAB 程式設計入門篇 滑鼠事件的使用 我們希望滑鼠先被按下,然後再移動滑鼠時,才會觸發移動時的反應指令。欲達到此效果,我們必須做下列事項: 在滑鼠按鈕被按下時,設定 WindowButtonMotionFcn 及 WindowButtonUpFcn 的值。 在滑鼠按鈕被釋放時,清除 WindowButtonMotionFcn 及 WindowButtonUpFcn 的值。 因此,只有在滑鼠按鈕被按下,且滑鼠在移動時,對應於 WindowButtonMotionFcn 的反應指令才會被呼叫。

MATLAB 程式設計入門篇 滑鼠事件的範例 一個滑鼠事件 (Mouse Events)的範例:mouse01.m(請仔細研讀!)

MATLAB 程式設計入門篇 如何使用UserData 在 Switchyard Programming 時,若要在不同的函數呼叫下存取相同的變數,有幾種方法: 使用UserData 每一個圖形物件都具有的欄位 可用來儲存一些特定的資料 使用全域變數 好處:程式碼較簡短 壞處:較難偵錯