Bài 1: Lập trình giao diện
GUI trong Matlab (Phần 1)
APRIL 4, 2008
Mình viết bài này để tổng hợp lại các hướng dẫn về thiết kế
giao diện GUI trong Matlab để các bạn dễ dàng thực hiện.
Phần mềm: Matlab R2007a
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
Trong cửa sổ GUIDE Quick Start có nhiều lựa chọn theo
một trong các khuân mẫu 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 project có sẵn.
Trong hướng dẫn này, các bạn tạo một project mới nên sẽ chọn Blank GUI
- 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 đó.
- Radio Button : Nút nhỏ hình tròn để chọn lựa
- Check
Box
- Edit
Text
- Static
Text
- Pop-up
Menu
- List
Box
- Axes
- Panel
- Button
Group
- ActiveX
Control
- Toggle
Button
Các bạn hãy thử gắp thả vài điều khiển vào trong giao diện
bên phải xem hình dạng thế nào ?? Hình dạng ra sao nhỉ ??
Còn menu thì quan trọng nhất là menu Tools có:
- Run (Ctr + T) :
nhấn vào để chạy chương trình mà ta đã viết.
Có lỗi là hiện ra ngày
- Align Object: dùng để làm cho các điều
khiển sắp xếp gọn đẹp theo ý mình như cùng căn lề bên trái, ...
- Grid and
Rulers : dùng để cấu hình về lưới
trong giao diện vì nó sẽ coi giao diện như một ma trận các ô vuông nhỏ, ta
sẽ thay đổi giá trị này để cho các điều khiển có thể thả ở đâu tùy ý cho đẹp.
- Menu Editor : trình này để tạo menu cho điều khiển
- Tab Order
Editor : sắp xếp Tab order là thứ
tự khi ta nhấn phím Tab
- Gui Options : lựa chọn cho giao diện GUI.
Các bạn nên vào menu Help để
xem hướng dẫn thêm trong Help.
Các bạn save dưới tên: TUT01, khi đó đồng thời xuất hiện cửa sổ Editor và đang mở file TUT01.m của bạn.
Trong thư mục bạn save sẽ có 2 file là:
- TUT01.fig : file này
chứa giao diện của chương trình
- TUT01.m : file chứa
các mã thực thi cho chương trình như các hàm khởi tạo, các hàm
callback,... (sẽ nói chi tiết vào bài khác).
3. Kéo thả các điều
khiển
Nói hơi nhiều nên các bạn ghét rồi, nên hãy làm một ví dụ
đơn giản cho vui còn học tiếp nào.
Chương trình có chức năng khi nhấn vào nút bấm thì kết quả của
phép tính cộng giữa 2 số được gõ vào 2 ô sẽ hiện lên trong Static Text.
4. Thay đổi các thuộc tính của
các điều khiển
Click đúp vào Edit Text bên trái để
xuất hiện cửa sổ các thuộc tính của điều khiển. Có thể sắp xếp theo chức năng
hoặc theo thứ tự A-Z của tên thuộc tính bằng nút hiện ở gõ bên trái.
Các thuộc tính này các bạn hãy thử thay đổi xem nó thế nào
nhỉ ??
Thuộc tính quan trọng của Edit
Box bao gồm:
- Tag: đây là thuộc tính giống như Caption trong
Visual Basic để đặt tên điều khiển. Dùng tên này có thể thao tác đến các
thuộc tính của đối tượng. Mình đặt tên là: editStr1.
- String : là xâu kí tự hiện lên Edit Box.
Các bạn xóa cái này đi.
Tương tự, thay đổi thuộc tính tag của Edit Box thứ 2
thành editStr2. Static Box cũng tương tự thành
staticStr3.
Push Button: thuộc tính tag = buttonCalculate, string =
calculate
5. Viết lệnh cho chương trình
Chương trình có tác dụng khi nhấn
vào nút Push Button sẽ hiện lên kết quả ở Static Box. Vì thế nên sẽ phải viết vào hàm nào mà khi nhấn vào Push Button sẽ gọi.
Chính là hàm Callback. Điều khiển nào cũng có hàm
callback, như hàm ngắt trong vi điều khiển vậy
.

Click chuột phải vào nút Calculate chọn Callback.
Trong này còn một số hàm nữa sẽ tính sau.
Nhìn vào định nghĩa của hàm trong Editor bạn sẽ thấy là: hàm này được thực hiện khi nhấn vào nút buttonCalculate.
Hàm có một số tham số:
- hObject : handle của điều khiển buttonCalculate
- eventdata
- handles
: là một cấu trúc chứa tất cả các điều khiển và dữ liệu người dùng. Dùng
cái này để truy suất các điều khiển khác.
Qua thuộc tính tag của các điều khiển ta sẽ truy suất đến thuộc tính string của các điều khiển editStr1,
editStr2,editStr3 bằng lệnh get và set.
get(handles.tag_dieu_khien,
'ten thuoc tinh');
set(handles.tag_dieu_khien,
'ten_thuoc_tinh', gia_tri);
và hàm quan trọng nữa biến từ string
sang số là hàm: str2num và num2str để biến trở lại.
Vậy chúng ta sẽ viết hàm như sau:
Tham khảo
Bài 2: Các tính chất của
các điều khiển trong GUIDE Matlab
Chào các bạn.
Mình xin gửi các bạn tài liệu Matlab
7 - Creating Graphical User Interfaces, là tài liệu dạng .pdf của tài liệu
trong Help của Matlab. Các bạn nào có thể tự đọc hiểu được English thì tài liệu
này là quá đầy đủ rồi. Các bài viết của mình dựa một phần vào tài liệu này và dựa
vào kinh nghiệm khi mình lập trình.
Mình đang làm đồ án tốt nghiệp nên mỗi ngày cố gắng viết một
tí cho các bạn đọc nhé. Mà đồ án của mình làm với FPGA, chỉ dùng System
Generator là liên quan đến Matlab thôi :d.
Trong bài viết này, mình giới thiệu các bạn các tính chất đặc
trưng của các điều khiển mà các bạn hay gặp.
Để hiện cửa sổ các tính chất Property
Inspector của một điều khiển chúng ta có 3 cách sau:
- Nhấn đúp chuột vào mỗi
điều khiển.
- Chọn điều khiển rồi
vào menu View, chọn Property Inspector.
- Chọn điều khiển rồi
nhấn vào biểu tượng Property Inspector, gần chỗ
M-file editor.
Khi đó, cửa sổ Property Inspector sẽ
hiện ra. Khi nhấn vào các điều khiển khác thì cửa sổ này sẽ hiện thông tin
tương ứng cho điều khiển đó.
Một vài tính chất chung của các điều khiển mà các bạn nên
chú ý:
Tính chất (property)
|
Giá trị (value)
|
Miêu tả
|
Enable
|
on, inactive, off
Mặc định là: on |
Xác định khi nào thì điều khiển hiển thị lên giao diện.
Đặt = off, thì điều khiển sẽ không xuất hiện. |
Max
|
Vô hướng.
Mặc định là 1. |
Giá trị lớn nhất, tùy thuộc vào từng điều khiển.
|
Min
|
Vô hướng.
Mặc định là 0 |
Giá trị nhỏ nhất, tùy thuộc vào từng điều khiển.
|
Position
|
Vector gồm 4 phần tử (left, bottom, width, height)
|
Kích thước của điều khiển và vị trí tương đối của nó với
điều khiển chứa nó.
|
String
|
||
Units
|
Đơn vị đo lường dùng trong xác định vị trí.
|
|
Value
|
Vô hướng hoặc vector
|
Giá trị của component, tùy thuộc vào từng component.
|
Ngoài ra, thuộc tính cực kì quan trọng
mà các bạn phải thay ngay từ đâu là: tag. Thuộc tính
này giống thuộc tính Caption mà các bạn gặp trong Visual Basic, chính là tên để
phân biệt giữa các điều khiển. Mỗi điều khiển chỉ có một tên duy nhất. các bạn
nên qui định cho dễ nhớ nhé. Mình nghĩ là nên kết hợp giữa tên của loại điều
khiển và mục đích của điều khiển đó.
Ví dụ: một ô nhập dữ liệu giá trị tiền, thuộc Edit Box nên
mình đặt tag là: editMoney.
Bây giờ đi vào từng điều khiển cụ thể.
1. Push Button
Thay đổi chữ hiển thị (label) hiển thị trên điều khiển này bằng
cách thay đổi thuộc tính String. Chữ
hiển thị trên Button chỉ có thể là 1 dòng, nên nếu
bạn gõ nhiều dòng trong thuộc tính String thì chỉ hiển
thị dòng đầu tiên. Nếu số kí tự dòng đầu tiên lớn hơn bề rộng có thể hiển
thị chữ được của bề mặt Button thì Matlab tự rút ngắn String đó với dấu 3 chấm
(...).
Thay đổi vị trí của PushButton
= thay đổi thuộc tính Position. Có thể code trong MFile (thay đổi trong
quá trình thực thi) hoặc thay đổi ngay lúc thiết kế(gắp thả).
Để thêm một ảnh vào PushButton thì chúng ta gán thuộc tính
CData bằng một ma trận m x n x 3 của giá trị RGB. Thực
hiện trong MFile ở hàm Open của điều khiển để ngay khi chạy chương trình đã
load ảnh này vào rồi.
img = rand(16,64.3);
set(handles.pushbutton1, 'CData',img);
Chú ý: Có thể tạo
biểu tượng riêng của bạn cho các nut Push Button bằng cách dùng Icon Editor,
sau đó dùng hàm ind2rgb để chuyển sang ảnh gán vào thuộc tính CData.
Các sự kiện xảy ra khi nhấn Push Button được viết trong các
hàm ngắt như Callback,..
2. Slider (Thanh trượt)
Thay đổi khoảng giá trị của Slider bằng
cách thay đổi thuộc tính Min và Max. Tất nhiên Min < Max.
Giá trị hiện tại của Slider được =
giá trị của thuộc tính Value. Nên khi set hoặc get
thì ta lấy giá trị này.
Khi click vào 2 cái mũi tên 2 bên thì thanh trượt sẽ trượt
tương ứng về 2 phía theo một bước nào đó. Thay đổi thuộc tính SliderStep =
[min_step, max_step]. min_step là giá trị bước nhảy khi click vào 2 mũi tên.
Còn Max_step là giá trị khi mà click vào trong vùng trượt.
3. Radio Button
Để biết nút Radio có được đánh dấu hay là không thì chúng ta
xem thuộc tính Value của nó.
Value = 1 thì check
Value = 0 thì là k check
4. Check Box
Check Box thì thuộc tính quan trọng cũng tương tự như Radio
Button.
5. Edit Text
Thuộc tính quan trọng là Stri
ng, chính là xâu kí tự hiển thị trên Edit Text. Chú ý: để hiển thị như ý muốn thì các bạn cần phải xem kĩ thêm các hàm xử lý string nhé.
ng, chính là xâu kí tự hiển thị trên Edit Text. Chú ý: để hiển thị như ý muốn thì các bạn cần phải xem kĩ thêm các hàm xử lý string nhé.
Để hiển thị Edit Text dạng Multi-line thì cần thay đổi thuộc tính Max, Min. Max> Min. Ví dụ:
Max = 2, Min = 0 sẽ hiển thị 2 dòng đó.
6. Static Text
Thằng này tương tự như Edit Text.
7. Popup Menu
8. List Box
9. Toggle Button
Hic hic, viết dài quá mỏi tay hật. Rảnh rỗi viết cập nhật
thêm vài cái, còn không thì các bạn thực hành trong các bài khác nhé 

Bài 3 : Tổng quan về hàm
Callback trong lập trình GUI
APRIL 17, 2008
Sau khi các bạn tạo cái giao diện đã xong thì đến phần lập
trình rất quan trọng, chính là lập trình các hành vi của các điều khiển để đáp ứng
lại các sự kiện như nhấn phím, kéo thanh trượt, khi chọn menu, ... đó chính là
các hàm Callback (giống như các hàm sự kiện trong Visual Basic).
Thế nào là hàm Callback ?
Callback là một hàm mà các bạn viết miêu tả hành vi của một
thành phần GUI xác định hoặc là của chính GUI figure, điều khiển các hành vi của
chúng bằng cách thực hiện một số hành động được viết trong hàm, để đáp ứng lại
một sự kiện của chính thành phần đó. Cách lập trình này thường gọi là : Lập
trình lái sự kiện (event driven programming).
Ví dụ, khi bạn nhấn một Button thì vẽ đồ thị đúng không ?? Vậy
thì khi nhấn phím thì hiển nhiên đã gọi hàm Callback nhấn phím của Button đó,
và trong hàm Callback này có lệnh vẽ đồ thị rồi.
Các loại hàm Callback ?
Mỗi thành phần có nhiều hàm Callback khác nhau, các bạn xem
thêm ở Properties nhé. Sau đây liệt kê các loại hàm Callback và các điều khiển
có thể có hàm này.
Callback property
|
Sự kiện xảy ra
|
Thành phần có hàm này
|
ButtonDownFcn
|
Thực hiện khi người dùng nhấn chuột lên hoặc trong 5
pixels của component hoặc figure. Nếu là component thì thuộc tính Enable phải
on ( tất nhiên rùi ).
|
Axes,figure,button
group,panel,user interfacecontrols |
Callback
|
Hành động của các component, ví dụ như thực thi khi người
dùng click lên Push Button hoặc chọn một thành phần menu.
|
Contextmenu,
menu,userinterface controls |
CloseRequestFcn
|
Thực thi trước khi figure đóng.
|
Figure
|
CreateFcn
|
Tạo các thành phần.Nó được dùng để khởi tạo các thành phần
khi nó được tạo ra. Nó thực thi sau khi thành phần hoặc figure được tạo,
nhưng trước khi hiển thị lên trên giao diện người dùng.
|
Axes,figure,button
group,contextmenu, menu,panel,user interfacecontrols |
DeleteFcn
|
Xóa thành phần. Nó có thể được dùng để thực hiện hành động
xóa bỏ trước khi component hoặc figure bị hủy bỏ.
|
Axes,figure,button
group,contextmenu, menu,panel,user interfacecontrols |
KeyPressFcn
|
Thực thi khi người dùng nhấn một phím trong keyboard và
component hoặc figure của hàm callback đó đang được focus.
|
Figure,userinterface
controls |
KeyReleaseFcn
|
Thực thi khi người dùng nhả một phím đang bấm và figure vẫn
đang được focus.
|
Figure
|
ResizeFcn
|
Thực thi khi người dùng thay đổi kích thước của panel,
button group, hoặc figure với điều kiện thuộc tính Resize của
figure = on.
|
Buttongroup,figure,
panel |
SelectiononChangeFcn
|
Thực thi khi người dùng lựa chọn một nút Radio Button khác
hoặc toggle button khác trong thành phần Button Group.
|
|
WindowButtonDownFcn
|
Thực thi khi bạn nhấn chuột (trái hoặc phải) trong khi con
trỏ vẫn nằm trong vùng cửa sổ figure.
|
Figure
|
WindowButtonMotionFcn
|
Thực thi khi bạn di chuyển con trỏ trong vùng cửa sổ
figure.
|
Figure
|
WindowButtonUpFcn
|
Ban đầu bạn nhấn chuột (trái, hoặc phải) thì khi nhả phím
đó ra thì hàm này sẽ được gọi.
|
Figure
|
WindowScrollWheelFcn
|
Thực thi khi nút cuộn của chuột cuộn trong khi figure vẫn
trong tầm focus.
|
Figure
|
Bài 4: Tạo file .exe trong
Matlab dùng Matlab Compiler
MARCH 27, 2008
Có nhiều bạn khá băn khoăn về việc dịch một ứng dụng trong
Matlab ra file .exe để chạy độc lập trên các máy không cài Matlab đúng không ??
Hay là cách để đóng gói sản phẩm của mình thì nên làm thế nào ?
Để có thể dịch ra file .exe yêu cầu
bạn phải có toolbox MATLAB® Compiler™. Các bạn có thể xem
chi tiết về toolbox này và cách dùng nó tại
đây. Mình nghĩ là nó hướng dẫn quá đầy đủ về Matlab Compiler, các bạn
chịu khó đọc từ đầu đến cuối là được. Các bạn đã cài bộ Help cho Matlab có thể
tìm Toolbox này trong phần Help (nhấn F1).
Trong bài viết này, mình xin giới
thiệu cách tạo file .exe bằng Deployment Tool. Công cụ giao
diện thân thiện, không phải gõ lệnh, chỉ gắp thả là được.
Yêu cầu
Matlab 7.0 trở lên (vì mình test từ 7.0 ).
Bước 1: Chọn công cụ biên dịch C
Note: Bước này chỉ cần thực hiện 1 lần duy nhất ban đầu, nếu
muốn chọn công cụ biên dịch khác thì chạy lại bước này.
Như các bạn thấy chúng ta chỉ cần chọn công cụ biên dịch C
có sẵn của Matlab là được rồi (Lựa chọn 1).
Bước 2: Chạy công cụ Development Tool
Gõ lệnh:
>> deploytool
Khi đó, giao diện của chương trình Deployment Tool hiện ra:
Hình 1: Giao diện chương trình Deployment Tool
Từ cửa sổ của chương trình các bạn có thể làm theo hướng dẫn
của chương trình được rồi.
Vào menu File chọn New Deployment
Project hoặc kich vào icon trên thanh công cụ.
Hình 2: New Deployment Tool
Từ đây các bạn có nhiều lựa chọn cho việc dịch project của bạn
không những dịch ra file .exe mà còn nhiều loại file khác như tạo thư viện C,
C++, thư viện để nhúng vào Excel, ... Nhưng ở đây mình chọnStandalone
Application để tạo ứng dụng độc lập. Chọn nơi lưu project trong
Location và nhấn OK.
Hình 3: Cửa sổ Deployment Tool sau khi đã tạo mới
Project
Sau đó các bạn vào menu Project
-> Add file để thêm file của dự án các bạn vào. Lưu ý: có thể kích phải
vào từng loại như Main Function, other files,.. và chọn Add File.
Note: Phải thêm hết các file trong dự án mà bạn muốn dịch vào trong
Project vừa tạo.
Bước 3: Dịch chương trình
Nếu muốn dịch thì các bạn chọn Tools -> Build (Ctr + B) để dịch. Các bạn phải kiên nhẫn chờ với project lớn nhé.
Nếu muốn đóng gói sản phẩn thì chọn Tools->
Package (Ctr + P) để dịch.
Note: Thế
là các bạn đã dịch xong rùi đó
. Tuy nhiên để chạy dc trên máy
khác chưa xong đâu. Các bạn cần phải copy file MCRInstaller.exe của
phiên bản Matlab của bạn đang sử dụng cho vào cùng thư mục với file đóng gói vừa
tạo ra. Khi mang sang máy khác thì chạy file .exe nó sẽ tự động cài MCR lần đầu.
Còn lấn sau k phải cài nữa.

Để biết vị trí của MCRInstaller:
>> mcrinstaller The WIN32 MCR Installer,
version 7.7, is: C:\Program
Files\MATLAB\R2007b\toolbox\compiler\deploy\win32\MCRInstaller.exe MCR installers for other platforms are
located in: C:\Program
Files\MATLAB\R2007b\toolbox\compiler\deploy\<ARCH> <ARCH> is the value of
COMPUTER('arch') on the target machine.
Để biết version của MCR hiện tại gõ:
>> [mcrmajor,mcrminor]=mcrversion mcrmajor = 7
mcrminor = 7
Chú ý: Copy MCRInstaller cùng với thư mục các bạn để file
package. Khi đó, chạy file package thì nó sẽ tự cài MCRInstaller.
Mình đã biên dịch và chạy thành công Project RS232
Communication chạy độc lập trên máy không cài Matlab.
Rất nhiều bạn khi lập trình GUI trong Matlab gặp rắc
rối với tiếng việt, sau một thời gian mày mò mình đã tìm ra được 1 cách như
sau:
- Chỉnh bảng mã TCVN3(ABC) trong Unikey
- Trong Matlab phần Font Name gõ .VnTime
- Mở word chọn font .VnTime, gõ nội dung cần hiển thị
- Copy vào phần Title trong Matlab
--> Thế là ok-->Thật đơn giản
- Chỉnh bảng mã TCVN3(ABC) trong Unikey
- Trong Matlab phần Font Name gõ .VnTime
- Mở word chọn font .VnTime, gõ nội dung cần hiển thị
- Copy vào phần Title trong Matlab
--> Thế là ok-->Thật đơn giản
Lập trình giao diện trong Matlab
Mục đích: Tạo một chương trình thân thiện với người
dùng , giúp thể hiện trực quan các kết quả cần thiết và tránh phải gõ các câu lệnh
dài,phức tạp.
Khởi tạo GUIDE
1.Mở Matlab, đi đến cửa sổ dòng lệnh và gõ lênh: guide

2.Chọn Blạnk GUI

3. Một màn hình như sau sẽ xuất hiện:

4. Chúng ta sẽ add các thành phần bên phía tay trái để được
1 giao diện như sau:
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image024.png)
Tạo giao diện
Các bạn kéo thả các thành phần sau:
-2 edit Text component ![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png)
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png)
-3 Static Text component ![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png)
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png)
-1 Component Pushbutton ![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image027.png)
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image027.png)
Nhấp đúp vào mỗi component để thiết lập tên và các thuộc
tính khác.Chúng ta quan tâm đến 2 thuộc tính cơ bản: String(Nhãn của
component),Tag(tên của component)
Component Static Text
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image028.png)
Component Edit Text
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image029.png)
Tương tự với component Edit Text thứ 2
Component pushbutton
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image030.png)
Sau đó save file giao diện lại ,lúc này Matlab sẽ tạo ra
cho bạn 1 file .m tương ứng để xử lý các sự kiện do user tác động đến mỗi
component.
Viết code cho các hàm Callback của GUI
Như đã nói ở trên, sau khi tạo xong và save file giao diện
lại, Matlab sẽ sinh ra một file .m tương ứng để xử lý các sự kiện trên mỗi
component. Các hàm xử lý sự kiện này ta gọi là callback function.
1. Mở file .m
tương ứng của chương trinh trong Matlab Editor, nhấn vào biểu tượng
, sẽ cho ra 1 danh sách các hàm
callback. Chúng ta tìm đến dòng input1_editText_Callback
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image031.png)
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image032.png)
2. Con trỏ sẽ
đưa bạn đến hàm tương ứng
function input1_editText_Callback(hObject, eventdata,
handles)
% hObject handle to
input1_editText (see GCBO)
% eventdata reserved - to be defined in a
future version of MATLAB
% handles structure with handles
and user data (see GUIDATA)
% Hint: get(hObject,'String') returns contents of
input1_editText as text
% str2double(get(hObject,'String'))
returns contents of
% input1_editText
as a double
Thêm đoạn code sau vào dưới cùng của hàm
%store the contents of input1_editText as a string. if
the string
%is not a number then input will be empty
input = str2num(get(hObject,'String'));
%checks to see if input is empty. if so, default
input1_editText to zero
if (isempty(input))
set(hObject,'String','0')
end
guidata(hObject, handles);
hObject ở đây thực chất là đối tượng edit, câu lệnh thứ
nhất sẽ lấy giá trị string của đối tượng input1_editText và chuyển nó sang dạng
số. Câu lệnh if để kiểm tra xem giá trị của input có phù hợp không,nghĩa là có
phải là số không, nêu không phải sẽ gán cho nó giá trị mặc định là 0. Câu lệnh
cuối cùng để update lại đối tuợng hObject sau mỗi lần gọi hàm
Callback.
Chúng ta làm tương tự với input2_editText_callback
3. Tiếp đến
chúng ta tìm đến hàm add_pushbutton_Callback và xử lý
Thêm đoạn code sau vào :
a = get(handles.input1_editText,'String');
b = get(handles.input2_editText,'String');
% a and b are variables of Strings type, and need to be
converted
% to variables of Number type before they can be added
together
total = str2num(a) + str2num(b);
c = num2str(total);
% need to convert the answer back into String type to
display it
set(handles.answer_staticText,'String',c);
guidata(hObject, handles);
Giải thích 1 chút về đoạn code:
2 câu lệnh đầu tiên lấy các giá trị ở 2 editText.Handles
là 1 đối tượng của cửa sổ chính, nó chứa tất cả các component con khác nằm
trong cửa sổ này. Vì vậy, khi muốn lấy ID của đối tượng input_editText ta phải
tham chiếu đến chúng thông qua đối tượng handle.
Các giá trị lấy được cần phải chuyển sang dạng số bằng
câu lệnh str2num. Sau đó để in kết quả ra Static Text, ta dùng lênh set. Cuối cùng
là update lại giao diện bằng câu lệnh guidata.
KHởi động GUI
Có 2 cách để chạy chương trình:
1. Cách thứ nhất,
nhấn nút
trong GUIDE editor.
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image033.png)
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image034.png)
2. Cách thứ 2:
Thiết lập Matlab current directory về đúng đường dẫn có
chứa các file nguồn của chương trình. Sau đó gõ lệnh: myAdder
(trong trường hợp các file của chưong trình là
myAdder.fig và myAdder.m)
3. Chương trình
sẽ làm việc bình thường nếu tất cả các bước trên được hoàn tất
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image035.png)
Cách sử dụng Pop-up menus component
Trong bài này bạn sẽ học cách tạo và sử dụng thành phần
Pop-up Menu. Pop-up Menu được sử dụng như 1 control để thay đổi sự lựa chọn,nó
tương tự như combobox component trong các công cụ lập trình visual của ngôn ngữ
Basic,C ,.NET....
Sau đây sẽ trình bày 1 ví dụ về cách sử dụng Popup Menus để
điều khiển font size của 1 dòng chữ.
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image036.png)
Tốt nhất bạn nên thực hành trên bản Matlab version 2007a.
Các phiên bản cũ hơn cũng có thể làm việc tốt.
Đầu tiên,mở Matlab, đi đến dòng lệnh và gõ
guide
bạn sẽ thấy hình sau đây. Chọn option đầu tiên blank
GUI(theo mặc định)

Nhấn chuột và thêm thành phần Static Text tới GUI. Tiếp đó,
kéo thả thành phần Pop-up menus tới GUI. Nhấp đúp vào thành phần Static Text để
thay đổi các thuộc tính của nó.Thay đổi thuộc tính String thành
"Testing",và thay đổi thuộc tính Tag thành testing_staticText như
hình dưới đây:
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image037.png)
Tiếp theo, chúng ta hãy chỉnh sửa các thuộc tính của thành
phần Pop-up Menus. Nhấp chuột vào biểu tượng sau để hiển thị cửa sổ thuộc tính
của Pop-up Menus.
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image038.png)
sau khi nhấp chuột vào icon, hãy điền các thông tin như sau:![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image039.png)
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image039.png)
Để mặc định thuộc tính Tag là popupmenu1.Bạn có thể thay đổi
tên của nó nếu muốn.
đây là những gì chúng ta có được sau những bước trên:.
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image040.png)
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image041.png)
Lưu GUI của bạn với 1 cái tên mong muốn.
Viết code cho GUI
Matlab tự động sinh ra 1 file .m cùng với file giao diện và
đặt trong cùng 1 thư mụch.File .m là nơi chúng ta xử lý các sự kiện gắn với mỗi
thành phần trên giao diện.Trong phạm vi bài viết, chúng ta tạm thời chỉ quan
tâm đến các hàm callback, nghĩa là các hàm được gọi ra khi chúng ta tác động
lên 1 component nào đó.
Mở file .m đã được sinh ra tự động khi bạn lưu file giao diện GUI.
Trong Matlab Editor, nhấp vào biểu tượng
,sẽ thấy 1 danh sách các hàm
callback. Chọn popupmenu1_Callback.

![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image032.png)
thêm đoạn code sau tới hàm:
%gets the selected option
switch get(handles.popupmenu1,'Value')
case 1
set(handles.testing_staticText,'FontSize',8);
case 2
set(handles.testing_staticText,'FontSize',10);
case 3
set(handles.testing_staticText,'FontSize',12);
case 4
set(handles.testing_staticText,'FontSize',14);
case 5
set(handles.testing_staticText,'FontSize',16);
otherwise
end
Hãy nhìn qua và phân tích code 1 chút. Dòng dưới đây lấy giá
trị option mà user đã chon. Nhớ rằng khi thiết kế giao diện lúc ban đầu, chúng
ta đã chỉ định 5 giá trị font size khác nhau cho component Popup-menus, tương ứng
5 tùy chọn. Ví dụ user chọn font size là 8 (tương ứng với vị trí đầu tiên của
Pop-up menus), dòng code sẽ trả về giá trị 1. Nếu user chọn số 10, gía trị trả
về sẽ là 2,...
get(handles.popupmenu1,'Value')
Phụ thuộc vào giá trị được chọn, font của Static Text
component sẽ thay đổi tuơng ứng bằng cách sử dụng dòng code sau:
%where ## is the appropiate fontsize value
set(handles.testing_staticText,'FontSize',##);
Lưu m-file!
Chạy và kiểm tra GUI
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image042.png)
Tiếp tục và thử với các font size khác nhau. Nếu mọi thứ đều
đúng thì bạn sẽ thấy dòng chữ thay đổi với font size tương ứng.
![Description: [Image]](file:///C:/Users/NGUYET~1/AppData/Local/Temp/msohtmlclip1/01/clip_image036.png)
ạo menu đơn giản với Matlab
Để tạo một menu trong matlab, với các tùy chọn cho mỗi trường
hợp, có thể làm đơn giản như sau:
Tạo một file .m với tên gọi TestMenu.m, sau đó viết lệnh như
sau:
K=menu('Choose a color','Red','Green','Blue');
switch (K)
case 1
msgbox('Red')
case
2
msgbox('Green')
case 3
msgbox('Blue')
end
Ở cửa sổ command của Matlab, gõ lệnh TestMenu. Với mỗi tùy
chọn sẽ hiện ra một hộp thoại thông báo tương ứng.
Chú ý:
Để thay đổi menu trên cửa sổ figure(gõ lệnh figure ) , ta có
thể dùng lệnh uimenu. Lệnh này sẽ bổ sung thêm các menu riêng vào menu chính.
f = uimenu('Label','Workspace');%tạo Menu với tiêu đề
Workspace
%Tạo menu con với tiêu đề New Figure, có hàm callback là
figure, khi click vào menuitem này,lệnh figure sẽ được thực hiện, khi đó sẽ hiện
ra 1 cửa sổ mới.
uimenu(f,'Label','New
Figure','Callback','figure');
%Tạo menu con Save, có hàm thực hiện là save
uimenu(f,'Label','Save','Callback','save');
%Tạo menu con Quit, có hàm thực hiện là exit(thoát khỏi
chương trình)
uimenu(f,'Label','Quit','Callback','exit',...
%dấu … thể hiện câu lệnh được chia làm 2dòng
'Separator','on','Accelerator','Q'); %Phím
tắt là Q được thiết lập cho submenu
Biên dịch chương trình viết bằng Matlab thành file .exe
Giả sử chúng ta đã có 1 file chương trình viết trên Matlab,
ví dụ 1 hàm vẽ đồ thị
function graph
a=[2,3,4,5,6];
b=[4,9,16,25,36];
plot(a,b);
Sau đó chúng ta save lại với tên file "graph.m".
1.Gõ lệnh sau trong cửa sổ dòng lệnh Matlab để tạo cấu hình cho bộ biên dịch:
mbuild -setup
2. Tiếp theo, chương trình sẽ hỏi bạn:
Please choose your compiler for building standalone Matlab applications:
Whould you like mbuild to locate installed compilers [y]/n?
Hãy gõ Y để đồng ý
3.Chọn 1 bộ biên dịch:
select a compiler:
[1] Lcc C version 2.4.1 in C:\Matlab71\sys\lcc
[0] None
Gõ 1 để chọn bộ biên dịch được tích hợp trong matlab
4.Sau đó bạn sẽ bị hỏi:
Please verify your choices:
Compiler: LCC c Version
Are these correct?(y/n)
Nhấn Y để xác nhận
Khi xác nhận, Matlab sẽ ghi lại quá trình tạo bộ biên dịch, đến khi bạn nhận được thông tin các file .dll đã được biên dịch thành công thì tiếp tục đến bước sau:
5.Biên dịch thành file .exe,gõ lệnh
mcc -m graph.m -o graph
Vậy là bạn đã tạo ra file graph.exe với bộ biên dịch trong Matlab.
Để ứng dụng có thể chạy được ở 1 vùng bất kì trên máy tính, bạn cần copy cả 2 file .exe và file .ctf vào cùng 1 thư mục. Để có thể chạy được trên máy tính khác, bạn cần phải cài thêm gói MCRInstaller trên máy đó.
function graph
a=[2,3,4,5,6];
b=[4,9,16,25,36];
plot(a,b);
Sau đó chúng ta save lại với tên file "graph.m".
1.Gõ lệnh sau trong cửa sổ dòng lệnh Matlab để tạo cấu hình cho bộ biên dịch:
mbuild -setup
2. Tiếp theo, chương trình sẽ hỏi bạn:
Please choose your compiler for building standalone Matlab applications:
Whould you like mbuild to locate installed compilers [y]/n?
Hãy gõ Y để đồng ý
3.Chọn 1 bộ biên dịch:
select a compiler:
[1] Lcc C version 2.4.1 in C:\Matlab71\sys\lcc
[0] None
Gõ 1 để chọn bộ biên dịch được tích hợp trong matlab
4.Sau đó bạn sẽ bị hỏi:
Please verify your choices:
Compiler: LCC c Version
Are these correct?(y/n)
Nhấn Y để xác nhận
Khi xác nhận, Matlab sẽ ghi lại quá trình tạo bộ biên dịch, đến khi bạn nhận được thông tin các file .dll đã được biên dịch thành công thì tiếp tục đến bước sau:
5.Biên dịch thành file .exe,gõ lệnh
mcc -m graph.m -o graph
Vậy là bạn đã tạo ra file graph.exe với bộ biên dịch trong Matlab.
Để ứng dụng có thể chạy được ở 1 vùng bất kì trên máy tính, bạn cần copy cả 2 file .exe và file .ctf vào cùng 1 thư mục. Để có thể chạy được trên máy tính khác, bạn cần phải cài thêm gói MCRInstaller trên máy đó.
Matlab GUIs – Cơ bản (Hello World!)
Chúng ta bắt đầu Matlab GUI với 1 ví dụ đơn giản. Trước
tiên Matlab GUI là viết tắt của Graphical User Interface Developmant
Environment, quá đơn giản….Bài viết này sẽ giới thiệu nhanh cho các bạn về
GUIs, tuy thế nhưng nó rất là hữu ích vì nếu chú ý bạn có thể làm nó trong vòng
10 phút…hoặc ít hơn. Hehe.
Nào chúng ta sẽ bắt đầu vào cuộc! Ở dấu nhắc trong Matlab ta gõ vào:
>>guide
Nó sẽ mở ra một cửa số “Quick Start”, ở đây bạn có thể bắt đầu một bài tập mới hoặc mở xem lại các bài đã làm trước đó. Không nói nhảm nữa, bây giờ thì nhấp vào tùy chọn “Blank GUI( Default)”.

Sau đó, một cửa sổ hiện ra, nó hao hao giống với giao diện trong VB hay VC mà các bạn đã biết ( hoặc chưa biết hehe). Nhìn phía bên trái có một vài công cụ để bạn có thể tạo cho riêng bạn một giao diện. Bạn có thể nhấp giữ và drag nó vào vùng interface.
Trong ví dụ đầu tiên này, chúng ta sẽ chỉ dùng tới 2 ‘push button’ và 1 ‘static text’ mà thôi.


Drag và drop một ‘static text’ bỏ vào interface của bạn. Bạn cũng có thể tăng hoặc giảm kích thước của vùng interface của bạn bằng cách drag cái nút đen đen bên dưới góc phải của interface của bạn.

Double click vô ‘static text’ và cửa sổ ‘Property Inspector’ xuất hiện. Cuộn xuống bên dưới tới chỗ thuộc tính ‘String’, bạn xóa đi nội dung vì chúng ta ko cần nó.
Sau đó, ở thuộc tính ‘Tag’ bạn sữa lại là ‘output_line’. Bạn cũng có thể sử lại bằng cái tên j khác cũng được, nhưng mà để tiện cho lập trình mình chọn nó có tên là ‘output_line’….hehe. Nếu bạn làm theo đúng những j mình hướng dẫn ở trên thì cửa số của bạn sẽ trông như sau:

Tiếp tục nào, bạn cũng drag và drop ‘push button’ vào interface của bạn. Cũng chỉnh sửa thuộc tính ‘String’ lại thành ‘Launch Message’. Đừng đụng chạm j tới ‘Tag’ của nó. Tuy có thể thay đổi, nhưng mà cái tên này có liên quan tới khi mà bạn lập trình, nếu thay đổi thì phải nhớ kỹ.
Màn hình của bạn giờ sẽ như sau:

Tiếp tục drag và drop một ‘push button’ khác. Chỉnh ‘String’ của nó thành ‘ Clear Message’ và cũng ko thay đổi ‘Tag’ của nó. Kết quả như sau:


Giờ thì nhấp phải lên nút ‘Launch Message’ và chọn ‘View Callbacks’ ->’Callback’
Bạn sẽ được yêu cầu save những j bạn đã làm lại. Để dể nhớ thì đặt tên là hello_world.fig….hay tên j đó mà bạn thích.
Sau khi save xong bạn sẽ đến màn hình để code. Matlab sẽ tự động khởi tạo các hàm có liên quan tới các đối tượng mà bạn lôi ra hồi nãy. Giờ bạn chỉ làm những công đoạn cuối cùng. Để nhanh chóng thì bạn đừng quan tâm tới những gì mà Matlab đã tạo sẵn cho bạn, hãy chỉ chú ý đến cái mà bạn cần thiết.
Hàm ‘Callback’ là một tổ hợp lệnh, chúng sẽ được thực thi khi mà người dùng nhấp lên button hoặc làm một thao tác j đó với đối tượng mà bạn đã lôi vào màn hình interface của bạn. Trong trường hợp này, bạn sẽ thấy code như sau
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MAT
% handles structure with handles and user data (see GUIDATA)
Hàm ‘set’ sẽ định dạng các thuộc tính của phần đối tượng mà bạn đang đề cập. Mà bạn có nhớ hồi nãy đã đặt tên ‘tag’ của ‘static text’ là j không nhỉ, đó là ‘output_line’. Giờ chúng ta sẽ chỉnh sửa nó khi người dùng nhấn vô nút ‘Launch Message’.
Hãy nhập vào dòng sau
set(handles.output_line,'String','Hello World!!')
Tham số đầu tiên của hàm ‘set’ là chỉ đến đối tượng mà bạn muốn chỉnh sửa thuộc tính. Bắt đầu với ‘handles.’. Tiếp theo là thuộc tính mà bạn sẽ chỉnh sửa đó là ‘String’, còn tham số thứ ba đó là giá trị mà bạn muốn thay đổi .
Vậy, kết quả khi bạn nhấp vào button ‘Launch Message’ một thông điệp sẽ hiện ra ‘Hello_World’. Giờ code của bạn sẽ như sau:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MAT
% handles structure with handles and user data (see GUIDATA)
set(handles.output_line,'String','Hello World!!')
Chúng ta sẽ làm tương tự đối với ‘callback’ khi nhấn vào nút ‘Clear Message’. Sửa lại như sau:
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MAT
% handles structure with handles and user data (see GUIDATA)
set(handles.output_line,'String','')
Kết quả khi nhấn vào nút ‘Clear Message’ , thông điệp sẽ được xóa đi
Nào hãy làm một điều kỳ thú đi nào.
Để thực thi những j mà bạn đã làm từ nãy giờ bạn nhấn vào nút ‘run’ hoặc nhấp ‘Ctrl+T’

Và nhấn đi nào. ‘Hello_World’ sẽ xuất hiện. Bây giờ thì bạn đã hoàn tất một bài GUIs đầu tiên.



Nào chúng ta sẽ bắt đầu vào cuộc! Ở dấu nhắc trong Matlab ta gõ vào:
>>guide
Nó sẽ mở ra một cửa số “Quick Start”, ở đây bạn có thể bắt đầu một bài tập mới hoặc mở xem lại các bài đã làm trước đó. Không nói nhảm nữa, bây giờ thì nhấp vào tùy chọn “Blank GUI( Default)”.

Sau đó, một cửa sổ hiện ra, nó hao hao giống với giao diện trong VB hay VC mà các bạn đã biết ( hoặc chưa biết hehe). Nhìn phía bên trái có một vài công cụ để bạn có thể tạo cho riêng bạn một giao diện. Bạn có thể nhấp giữ và drag nó vào vùng interface.
Trong ví dụ đầu tiên này, chúng ta sẽ chỉ dùng tới 2 ‘push button’ và 1 ‘static text’ mà thôi.


Drag và drop một ‘static text’ bỏ vào interface của bạn. Bạn cũng có thể tăng hoặc giảm kích thước của vùng interface của bạn bằng cách drag cái nút đen đen bên dưới góc phải của interface của bạn.

Double click vô ‘static text’ và cửa sổ ‘Property Inspector’ xuất hiện. Cuộn xuống bên dưới tới chỗ thuộc tính ‘String’, bạn xóa đi nội dung vì chúng ta ko cần nó.
Sau đó, ở thuộc tính ‘Tag’ bạn sữa lại là ‘output_line’. Bạn cũng có thể sử lại bằng cái tên j khác cũng được, nhưng mà để tiện cho lập trình mình chọn nó có tên là ‘output_line’….hehe. Nếu bạn làm theo đúng những j mình hướng dẫn ở trên thì cửa số của bạn sẽ trông như sau:

Tiếp tục nào, bạn cũng drag và drop ‘push button’ vào interface của bạn. Cũng chỉnh sửa thuộc tính ‘String’ lại thành ‘Launch Message’. Đừng đụng chạm j tới ‘Tag’ của nó. Tuy có thể thay đổi, nhưng mà cái tên này có liên quan tới khi mà bạn lập trình, nếu thay đổi thì phải nhớ kỹ.
Màn hình của bạn giờ sẽ như sau:

Tiếp tục drag và drop một ‘push button’ khác. Chỉnh ‘String’ của nó thành ‘ Clear Message’ và cũng ko thay đổi ‘Tag’ của nó. Kết quả như sau:


Giờ thì nhấp phải lên nút ‘Launch Message’ và chọn ‘View Callbacks’ ->’Callback’
Bạn sẽ được yêu cầu save những j bạn đã làm lại. Để dể nhớ thì đặt tên là hello_world.fig….hay tên j đó mà bạn thích.
Sau khi save xong bạn sẽ đến màn hình để code. Matlab sẽ tự động khởi tạo các hàm có liên quan tới các đối tượng mà bạn lôi ra hồi nãy. Giờ bạn chỉ làm những công đoạn cuối cùng. Để nhanh chóng thì bạn đừng quan tâm tới những gì mà Matlab đã tạo sẵn cho bạn, hãy chỉ chú ý đến cái mà bạn cần thiết.
Hàm ‘Callback’ là một tổ hợp lệnh, chúng sẽ được thực thi khi mà người dùng nhấp lên button hoặc làm một thao tác j đó với đối tượng mà bạn đã lôi vào màn hình interface của bạn. Trong trường hợp này, bạn sẽ thấy code như sau
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MAT
% handles structure with handles and user data (see GUIDATA)
Hàm ‘set’ sẽ định dạng các thuộc tính của phần đối tượng mà bạn đang đề cập. Mà bạn có nhớ hồi nãy đã đặt tên ‘tag’ của ‘static text’ là j không nhỉ, đó là ‘output_line’. Giờ chúng ta sẽ chỉnh sửa nó khi người dùng nhấn vô nút ‘Launch Message’.
Hãy nhập vào dòng sau
set(handles.output_line,'String','Hello World!!')
Tham số đầu tiên của hàm ‘set’ là chỉ đến đối tượng mà bạn muốn chỉnh sửa thuộc tính. Bắt đầu với ‘handles.’. Tiếp theo là thuộc tính mà bạn sẽ chỉnh sửa đó là ‘String’, còn tham số thứ ba đó là giá trị mà bạn muốn thay đổi .
Vậy, kết quả khi bạn nhấp vào button ‘Launch Message’ một thông điệp sẽ hiện ra ‘Hello_World’. Giờ code của bạn sẽ như sau:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MAT
% handles structure with handles and user data (see GUIDATA)
set(handles.output_line,'String','Hello World!!')
Chúng ta sẽ làm tương tự đối với ‘callback’ khi nhấn vào nút ‘Clear Message’. Sửa lại như sau:
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MAT
% handles structure with handles and user data (see GUIDATA)
set(handles.output_line,'String','')
Kết quả khi nhấn vào nút ‘Clear Message’ , thông điệp sẽ được xóa đi
Nào hãy làm một điều kỳ thú đi nào.
Để thực thi những j mà bạn đã làm từ nãy giờ bạn nhấn vào nút ‘run’ hoặc nhấp ‘Ctrl+T’

Và nhấn đi nào. ‘Hello_World’ sẽ xuất hiện. Bây giờ thì bạn đã hoàn tất một bài GUIs đầu tiên.



This comment has been removed by a blog administrator.
ReplyDeleteThanks anh nhìu nhé..!!!
ReplyDeleteBạn cho mình hỏi là mình muốn viết chữ có dấu trong Msgbox thì làm sao ? Mình viết thì hiện ra tiếng việt nhưng khi chạy thì bị lổi font hết
ReplyDeleteThis comment has been removed by the author.
ReplyDeletetheo kinh nghiệm của mình thì bạn nên viết tiếng anh hoặc tiếng việt không dấu, lý do là matlab và mapple viết tiếng việt khó khăn khi chạy lỗi . VD nếu bạn muốn gõ tiếng việt trong MAPLE thì bạn phải chỉnh font chữ : VNI WINDOWS.
ReplyDeleteViết 1 chương trình Matlab (thể hiện trên GUI) cho phép nhập chiều dài khối ngõ vào, giá trị ngõ vào, chiều dài đáp ứng xung, giá trị đáp ứng xung. Tính chiều dài ngõ ra và giá trị ngõ ra (thể hiện trên tất cả các phương pháp đã học: bảng tích chập, dạng LTI, dạng ma trận …..)làm giúp t bài này với, t k hiểu gì về matlab hết:((
ReplyDeletesao không có ai làm bài giúp minh z? :((
ReplyDeletebạn nên đọc tài liệu , chứ bạn nói không hiểu gì về matlab thì không được đâu bạn, nói gì về GUI nữa, nó khá khó và phức tạp, không phải ngày một ngày hai làm ra được : có quá trình tìm hiểu nghiên cứu , sau đó mới hiểu và viết code, đến lúc hiểu rồi thì phải biết cách " luồn " vào trong một giao diện.
DeleteTài liệu thì chỉ có tiếng anh mới có nhiều, bạn nên tìm hiểu , không biết đến đâu thì mọi người sẽ giúp.
Cảm ơn bạn
ban oi cho hoi tai sao minh ko thay dc phần ảnh miêu tả của bạn vậy??
ReplyDeleteError while evaluating uicontrol Callback
ReplyDeleteloi nay la ntn ha ban???minh lam vidu mak k dc
bạn coi lại link này :
ReplyDeletehttp://nguyenhuutienbk.blogspot.com/2012/10/bai-3-tong-quan-ve-ham-callback-trong.html
http://nguyenhuutienbk.blogspot.com/2012/10/bai-1-lam-quen-voi-gui-trong-matlab.html
Viết 1 chương trình Matlab (thể hiện trên GUI) cho phép nhập chiều dài khối ngõ vào, giá trị ngõ vào, chiều dài đáp ứng xung, giá trị đáp ứng xung. Tính chiều dài ngõ ra và giá trị ngõ ra (thể hiện trên tất cả các phương pháp đã học: bảng tích chập, dạng LTI, dạng ma trận …..)làm giúp t bài này với, t k hiểu gì về matlab hết:((
ReplyDeletegửi vào mail dothithuyk36cntt@gmail.com giúp t nha!
vd mình có một nút clear, công dụng là click vào thì xóa tẩt cả các trường đã nhập trong ô Edit text thì code thế nào vậy bạn?
ReplyDelete