Đang tải...

Phần mềm khác Lập trình giao diện trong Matlab

Thảo luận trong 'Phần mềm kỹ thuật' bắt đầu bởi haui, 3/3/11.

Thành viên đang xem bài viết (Users: 0, Guests: 0)

  1. haui
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    5/8/09
    Số km:
    3,304
    Được đổ xăng:
    128
    Mã lực:
    381
    Xăng dự trữ:
    -120 lít xăng
    Bài đầu tiên mình sẽ giới thiệu các bạn giao diện GUI.

    1. Mở phần mềm Matlab, gõ lệnh sau vào cửa sổ Command
    >> guide
    hoặc Menu File\New\GUI
    [​IMG]
    Trong cửa sổ GUIDE Quick Start có nhiều lựa chọn theo một trong các mục sau:

    - Create New GUI: Tạo một hộp thoại GUI mới theo một trong các loại sau

    * Blank GUI (Default): Hộp thoại GUI trống không có một điều khiển uicontrol nào cả.
    * GUI with Uicontrols: Hộp thoại GUI với một vài uicontrol như button, … Chương trình có thể chạy ngay.
    * GUI with Axes and Menu: Hộp thoại GUI với một uicontrol axes và button, các menu để hiển thị đồ thị.
    * Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No.

    - Open Existing GUI: mở một figure-file có sẵn.

    -> Các bạn chọn Blank GUI

    2. Cửa sổ GUI hiện ra

    [​IMG]

    Giao diện rất giống với các chương trình lập trình giao diện như Visual Basic, Visual C++, … Các bạn di chuột qua các biểu tượng ở bên trái sẽ thấy tên của các điều khiển. Hoặc tùy chỉnh trong menu File\Prefrences: Chọn GUIDE, đánh dấu chọn Show Names... ->OK. Sẽ thấy tên các điều khiển:

    [​IMG]

    Chức năng của các điều khiển như sau:

    * Push Button: giống như nút Command Button trong VB. Là các nút bấm như nút OK, Cancel mà ta vẫn bấm.
    * Slider : Thanh trượt có một con trượt chạy trên đó. (hay dùng để làm tiến độ, tiến trình, hoặc phần trăm...)
    * Radio Button : Nút nhỏ hình tròn để chọn lựa. (Dùng để chọn hoặc cái này, hoặc cái kia)
    * Check Box: Lựa chọn hình vuông. (Khác Radio Button ở chỗ có thể chọn hoặc ko chọn nhiều cái, độc lập)
    * Edit Text: Hộp nhập dữ liệu. (Để nhập các thông số đầu vào của bài toán)
    * Static Text: Giống như nhãn trong VB. (Dùng để gán nhãn, chú thích cho Edit Text, hoặc đối tượng khác...)
    * Pop-up Menu: Nút công cụ có dạng menu. (khi ấn vào nút hiện ra nhiều lựa chọn)
    * List Box: Hộp nhập dữ liệu theo danh sách. (Khác Edit Text ở chỗ là phải chọn 1 mục trong danh sách có sẵn)
    * Toggle Button: Nút lệnh có tính chất on/off (nhấn nó chìm xuống, nhấn cái nữa lại nổi lên)
    * Table: Bảng dữ liệu (Cái này mới bổ sung từ Matlab2007 cho bằng bạn bằng bè)
    * Axes: Hệ trục tọa độ. (Dùng đẻ thể hiện các đối tượng đồ họa)
    * Panel: Khung chứa các điều khiển
    * Button Group: Tạo ra một nhóm các nút
    * ActiveX Control: Điều khiển ActiveX (sử dụng các đối tượng trong thư viện của Win)


    Các bài sau sẽ giới thiệu và hướng dẫn các bạn sử dụng từng điều khiển một.

    Dưới đây là một trong những đề tài mình đã làm. Các bạn xem sẽ thấy giao diện lập trình bằng Matlab ko thua kém gì so với Visual Basic, Visual C++
    [​IMG]

    Cảm ơn nhiều!
     
  2. haui
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    5/8/09
    Số km:
    3,304
    Được đổ xăng:
    128
    Mã lực:
    381
    Xăng dự trữ:
    -120 lít xăng
    Hướng dẫn sử dụng Push button, Edit Text và Static Text qua ví dụ: Giải phương trình bậc 2

    Chạy Matlab
    Vào Menu File\New\GUI sẽ thấy hiện ra hộp thoại sau:
    [​IMG]

    Chọn Blank GUI -> OK
    Trong hộp thoại hiện ra (figure), kéo thả các điều khiển Push button, Edit TextStatic Text vào figure được hình như sau:
    [​IMG]

    Mỗi điều khiển đều có nhiều thuộc tính (có thể xem bằng cách click đúp vào điều khiển đó). Mỗi điều khiển có 2 thuộc tính quan trọng nhất là: Tag, String. Không giống như VB danh sách thuộc tính hiển thị ngay khi đánh dấu chấm sau tên đối tượng, với ML chúng ta phải học thuộc tên các thuộc tính của các điều khiển. Tag là thuộc tính chỉ địa chỉ của điều khiển (dùng để gọi khi cần). String là thuộc tính chứa nội dung (sẽ được hiển thị ra ngoài) của điều khiển. Sau đây ta đặt các thuộc tính này:

    - Push button 1: (click đúp vào điều khiển Push button thứ nhất)
    + Tag : start
    + String : Bat dau
    [​IMG]

    - Push button 2:
    + Tag : close
    + String : Close
    - Edit Text 1:
    + Tag : heso_a
    + String : (xóa trắng)
    - Edit Text 2:
    + Tag : heso_b
    + String : (xóa trắng)
    - Edit Text 3:
    + Tag : heso_c
    + String : (xóa trắng)
    - Edit Text 4:
    + Tag : nghiem_x1
    + String : (xóa trắng)
    - Edit Text 5:
    + Tag : nghiem_x1
    + String : (xóa trắng)

    - Static Text 1: (Đối với các Static Text thuộc tính Tag không quan trọng, trừ các trường hợp đặc biệt)
    + String : Giai phương trinh bac 2: ax2 + bx + c = 0
    - Static Text 2:
    + String : a =
    - Static Text 3:
    + String : b =
    - Static Text 4:
    + String : c =
    - Static Text 5:
    + String : Ket luan
    - Static Text 6:
    + Tag : kl
    + String : (xóa trắng)
    - Static Text 7:
    + Tag : nghiem_x1
    + String : x1 =
    - Static Text 8:
    + Tag : nghiem_x2
    + String : x2 =
    - figure: (click đúp vào nền của figure):
    + Tag : fig1
    + Name : Giai phương trinh bac 2
    [​IMG]
    Sau khi đặt các thuộc tính, căn chỉnh (sử dụng chuột hoặc công cụ Align Objecs) được figure có dạng như sau:


    Lưu lại figure (Menu File\Save) dưới tên GPTB2.fig
    Sau đó ML tự sinh file GPTB2.m; trong file này tìm hàm start_callback (có thể phải chuột vào nút Bat dau chọn View callbacks\callback) và đánh vào các dòng lệnh sau:

    [​IMG]

    Hàm set là hàm đặt thuộc tính cho điều khiển
    Hàm get là hàm lấy giá trị thuộc tính của điều khiển
    Hàm str2double là hàm biến chuỗi thành số

    Cuối cùng ghi lại file m (GPTB2.m) và chạy chương trình (nhấn F5 hoặc nút run hình tam giác màu xanh). Nhập vào các hệ số a, b, c và click nút Bat dau để xem thành quả nào.

    Chúc các bạn thành công!
     
  3. haui
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    5/8/09
    Số km:
    3,304
    Được đổ xăng:
    128
    Mã lực:
    381
    Xăng dự trữ:
    -120 lít xăng
    Một ví dụ về lập trình giao diện trong Matlab.

    Chương trình Femsoft, khả năng cũng không thua kém VisualBasic:
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
     
  4. kbitgi
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    7/9/11
    Số km:
    2
    Được đổ xăng:
    0
    Mã lực:
    0
    Xăng dự trữ:
    309 lít xăng
    mình đang lập phần mềm kiểm tra đồ án kctt ô tô bằng matlab.nên ai có tài liệu gì liên quan thì gửi cho mình nhé...thank you very much! :9:
     
  5. shinichi1807
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    10/3/10
    Số km:
    4
    Được đổ xăng:
    0
    Mã lực:
    0
    Xăng dự trữ:
    312 lít xăng
    anh cho em hỏi với. em tìm đến lệnh function start_Callback(hObject, eventdata, handles)
    thì sau lệnh này là em gõ code trên của anh hay là xóa nó đi. em làm rồi mà không thấy chạy???????????
     
  6. anhqdt43
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    4/4/12
    Số km:
    16
    Được đổ xăng:
    0
    Mã lực:
    1
    Xăng dự trữ:
    265 lít xăng
    Chào các bác, bác nào cần học Matlab thì send mail cho em vào địa chỉ: vptcenter@gmail.com em gửi tài liệu cho mà học.
     
  7. rechardtran
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    20/11/10
    Số km:
    4
    Được đổ xăng:
    0
    Mã lực:
    0
    Xăng dự trữ:
    247 lít xăng
    Topic bổ ich thế này mà ko thấy ai lên tiêng nhỉ, xem và thanks thì chủ pic mới càng hào hứng :))
     
  8. thanh_bin1990
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    7/4/12
    Số km:
    74
    Được đổ xăng:
    1
    Mã lực:
    0
    Xăng dự trữ:
    32 lít xăng
    các chương trình matlap này e ngồi mò cả tháng cũng chỉ làm dc mấy cái cơ bản , hjxhjx, mấy cái chương trình lập trình khó kinh khủng :(
     
  9. thandieuvh
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    6/6/12
    Số km:
    2
    Được đổ xăng:
    0
    Mã lực:
    0
    Xăng dự trữ:
    336 lít xăng
    Bài này Copy từ diễn đàn cơ điện tử sang mà không ghi rõ nguồn gốc :32:

    http://diendancodientu.com/forum/showthread.php?45-Lập-trình-giao-diện-trong-Matlab



    ---------- Post added at 03:05 PM ---------- Previous post was at 03:01 PM ----------

    Bài nay nguyên gốc bên đienancodientu Copy sang day
    http://diendancodientu.com/forum/showthread.php?45-Lập-trình-giao-diện-trong-Matlab

     
  10. eyes146
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    7/6/12
    Số km:
    4
    Được đổ xăng:
    0
    Mã lực:
    0
    Xăng dự trữ:
    315 lít xăng
    cho em hỏi thêm chút, khi mình muốn xóa tất cả những thông số vừa nhập vào các edit text thì phải làm sao? Mong được hồi đáp sớm
     
  11. polyathao
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    10/11/12
    Số km:
    2
    Được đổ xăng:
    0
    Mã lực:
    0
    Xăng dự trữ:
    339 lít xăng
    Chào bác haui, bác làm giao diện matlab pro quá! Em đang tìm hiểu giao diện matlab để làm cái đồ án, bác có thể cho em tham khảo cái femsorf của bác được không ạ? em đang cần gấp. Em có thể đóng góp chút phí cũng được, nhưng báo trước bác, em là học viên diện khó khăn đó :)). Có gì bác mail cho em vào địa chỉ ndthao80@gmail.com. Thanks bác nhiều.
     
  12. quocdung13
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    24/11/12
    Số km:
    4
    Được đổ xăng:
    0
    Mã lực:
    0
    Xăng dự trữ:
    245 lít xăng
    vd, mình có 1 nút là clear, giả sử click vào nút này thì toàn bộ những giá trị ở các ô Edit đều được xóa hết, thì làm thế nào vậy mọi người!
    hay vd như nhấn nút Close thì tắt chương trình luôn, code như thế nào?
     
  13. eyes146
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    7/6/12
    Số km:
    4
    Được đổ xăng:
    0
    Mã lực:
    0
    Xăng dự trữ:
    315 lít xăng
    lập trình nốt close và nôt clear

    Trả lời:
    1. Bạn tạo một pushbutton sau đó phải chuột-> vew-> callback -> điện đoạn code tương tự như ở dưới để xóa hết các ô Edit. có thể hiểu là điền một khoảng trắng vào Edit
    function pushbutton3_Callback(hObject, eventdata, handles)
    % hObject handle to pushbutton3 (see GCBO)
    % eventdata reserved - to be defined in a future version of MATLAB
    % handles structure with handles and user data (see GUIDATA)
    set(handles.edit1,'string','');
    set(handles.edit2,'string','');
    set(handles.edit3,'string','');
    set(handles.edit4,'string','');
    set(handles.edit5,'string','');

    2. muốn đóng thì bạn tạo một pushbutton sau đó vào callback gõ lệnh sau
    close();
    thế là xong chuc thành công
     
  14. quocdung13
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    24/11/12
    Số km:
    4
    Được đổ xăng:
    0
    Mã lực:
    0
    Xăng dự trữ:
    245 lít xăng
    cám ơn bạn eyes146, mình đã làm được rồi ! :d
     
  15. bngoctuan11
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    6/4/13
    Số km:
    119
    Được đổ xăng:
    57
    Mã lực:
    51
    Giới tính:
    Nam
    Xăng dự trữ:
    1,062 lít xăng
    Có cao thủ nào nghiên cứu matlab cho em hỏi với ạ
     

Chia sẻ trang này