<< Chapter < Page Chapter >> Page >
Đây là giáo trình về tạo giao diện trong Matlab

Mục tiêu

Bài thí nghiệm này trang bị cho sinh viên một số kiến thức cơ bản để xây dựng giao diện người dùng trong môi trường Matlab, nhằm hoàn thiện một chương trình ứng dụng nhất định.

Tham khảo

[1].The Mathworks Inc., Matlab Notebook User’s Guide, 2003.

[2].Nguyễn Hữu Tình - Lê Tấn Hùng - Phạm Thị Ngọc Yến - Nguyễn Thị Lan Hương, Cơ sở Matlab&ứng dụng, NXB KH và Kỹ thuật, 1999.

[3].Nguyễn Hoài Sơn - Đỗ Thanh Việt - Bùi Xuân Lâm, Ứng dụng MATLAB trong tính toán kỹ thuật, Tập 1, NXB ĐHQG Tp. HCM, 2000 (trang 328-344).

Thực hành

Cũng như các ngôn ngữ cấp cao khác, Matlab hổ trợ nhiều công cụ chức năng cho phép lập trình tạo giao diện sử dụng đẹp và nhanh chóng. Ví dụ, các dạng nút ấn, cửa sổ soạn thảo, các dạng menu, … như hình 6.1.

***SORRY, THIS MEDIA TYPE IS NOT SUPPORTED.***

Hình 6.1 – Các công cụ hổ trợ giao diện

Trong bài thí nghiệm này, sinh viên lần lượt thực hiện các bước được nêu ra để được một giao diện đơn giản như hình vẽ 6.2. Trong mỗi bước thực hành, sinh viên hãy quan sát kỹ đáp ứng của chương trình, từ đó tự mình rút ra kinh nghiệm về việc điều chỉnh các thuộc tính đồ hoạ của Matlab.

Tạo cửa sổ chính figure – ‘Welcome to User Interface’s Giude’ theo cách sau:

  • Mở Matlab Editor
  • Nhập nội dung sau:

% User Interface's Guide

%

% Matlab Experiments 2003

% TcAD, CIT, Cantho University

% ----------------------------------------------------------------------------------

% Initialize whole figure...

namefig = 'Welcome to User Interface''s Guide';

figpos = get(0,'DefaultFigurePosition'); % lay vi tri mac nhien

figpos(1)= figpos(1)-10; figpos(2)= figpos(2)-10;

figpos(3)= figpos(3)+10; figpos(4)= figpos(4)+10;

% Tao figure

fig=figure( ...

'Name', namefig, ...

'NumberTitle','off', ...

'Position',figpos);

Hình 6.2 – Một giao diện đơn giản

  • Lưu thành file giaodien.m
  • >>giaodien<>% thi hanh

Quan sát kết quả trên hình 6.3 (Lưu ý các thuộc tính: Name, Position)

(Hình 6.3)

  • >>set(fig)% xem thuộc tính của figure trong cửa sổ lệnh

Thêm vào figure một axes cho phép hiển thị đồ họa:

  • Nhập tiếp nội dung sau vào file giaodien.m

% --------------------------------------------------------------------------------

% main axes

axs=axes('Position',[0.05 0.4 0.65 0.55]);

  • Lưu và thi hành file này.

(Hình 6.4)

Hiển thị dòng ‘Matlab Experiments’ bên dưới axes:

  • Nhập tiếp nội dung sau vào file giaodien.m

% --------------------------------------------------------------------------------

% text

txtpos=[10 50 425 50];

txt=uicontrol(...

'Style','text',...

'BackgroundColor',[0.8 0.8 0.8],...

'ForegroundColor',[0.4 0.5 0.3],...

'String','Matlab Experiments',...

'Position',txtpos,...

'Fontname','Courier',...

'FontWeight','Bold',...

'FontSize',26);

  • Lưu và thi hành file này.

(Hình 6.5)

Tạo một frame có shadow bên phải figure để đặt các nút chức năng:

  • Nhập tiếp nội dung sau vào file giaodien.m

% --------------------------------------------------------------------------------

% Console frames

p1=0.755; p2=0.05; p3=0.2; p4=0.90;

frm1pos = [p1 p2 p3 p4];

frm2pos = [p1-0.005 p2+0.005 p3 p4];

% shadow frame

frm1=uicontrol( ...

'Style','frame', ...

'Units','normalized', ...

'Position',frm1pos, ...

'ForegroundColor',[0.4 0.4 0.4],...

'BackgroundColor',[0.4 0.4 0.4]);

% main frame

frm2=uicontrol( ...

'Style','frame', ...

'Units','normalized', ...

'Position',frm2pos, ...

'ForegroundColor',[0.7 0.7 0.7],...

'BackgroundColor',[0.65 0.65 0.65]);

  • Lưu và thi hành file này.

(Hình 6.6)

Tạo nút ‘Close’ có chức năng đóng cửa sổ figure hiện hành:

  • Nhập tiếp nội dung sau vào file giaodien.m

% ----------------------------------------------------------------------------------

% Close button

closeHndl=uicontrol(...

'Style','pushbutton', ...

'Units','normalized', ...

'Position',[p1+0.01 p2+0.05 p3-0.025 0.05], ...

'String','Close', ...

'Foregroundcolor','b',...

'Fontsize',9,...

'Callback','close');

  • Lưu và thi hành file này.

Vấn đề quan trọng nhất đối với một nút chức năng là thi hành công việc tương ứng khi người sử dụng thao tác. Thuộc tính ‘CallBack’ cho phép: thi hành một lệnh của Matlab dưới dạng chuỗi (bao gồm lệnh gọi hàm, script file, biểu thức toán, …). Sinh viên thử thay lệnh close bằng một lệnh khác, chẳng hạn demos và quan sát đáp ứng.

Tạo nút Sphere để vẽ một hình cầu 3D:

  • Nhập tiếp nội dung sau vào file giaodien.m

% ----------------------------------------------------------------------------------

% Sphere button

sph=uicontrol( ...

'Style','pushbutton', ...

'Units','normalized', ...

'Position',[p1+0.01 p4-0.05 p3-0.025 0.05], ...

'String','Sphere', ...

'Foregroundcolor','b',...

'Fontsize',9,...

'Callback',['[x,y,z]=sphere(35);', 'surfl(x,y,z);', 'axis equal']);

  • Lưu và thi hành file này.

(Hình 6.7)

Tạo nút Picture để hiển thị ảnh màu:

  • Nhập tiếp nội dung sau vào file giaodien.m

% ----------------------------------------------------------------------------------

% Picture button

pic=uicontrol( ...

'Style','pushbutton', ...

'Units','normalized', ...

'Position',[p1+0.01 p4-0.125 p3-0.025 0.05], ...

'String','Picture', ...

'Foregroundcolor','b',...

'Fontsize',9,...

'Callback',['imshow(imread(''flowers.tif''))']);

  • Lưu và thi hành file này.

(Hình 6.8)

Sinh viên lưu ý cách biểu diễn nhiều lệnh ở dạng chuỗi cho ‘CallBack’. Trong trường hợp có quá nhiều lệnh phục vụ chức năng này, ta nên đưa chúng vào một script file hoặc một hàm khác. Ngoài ra, nếu ta tạo giao diện dưới dạng một hàm (function) thì thuộc tính ‘CallBack’ cho phép gọi một hàm con được viết ngay trong file này.

Sinh viên hãy tạo thêm nút ‘About’ sao cho khi người sử dụng ấn nút sẽ mở cửa sổ mới nằm ngay giữa màn hình 6.9.

(Hình 6.9)

Tự chọn

Sinh viên hãy xem một số file tạo giao diện demo của các toolbox trong Matlab chẳng hạn: graf3d.m trong \toolbox\matlab\demos, để tham khảo cách xây dựng giao diện theo dạng hàm. Với cách này, thuộc tính ‘CallBack’ trong ‘uicontrol’ cho phép gọi trực tiếp một hàm mà hàm đó được xây dựng ngay trong file giao diện (nghĩa là không cần tạo một file *.m khác phục vụ cho ‘CallBack’).

Thử sửa lại giao diện của bài thí nghiệm này theo dạng trên.

Questions & Answers

Is there any normative that regulates the use of silver nanoparticles?
Damian Reply
what king of growth are you checking .?
Renato
What fields keep nano created devices from performing or assimulating ? Magnetic fields ? Are do they assimilate ?
Stoney Reply
why we need to study biomolecules, molecular biology in nanotechnology?
Adin Reply
?
Kyle
yes I'm doing my masters in nanotechnology, we are being studying all these domains as well..
Adin
why?
Adin
what school?
Kyle
biomolecules are e building blocks of every organics and inorganic materials.
Joe
anyone know any internet site where one can find nanotechnology papers?
Damian Reply
research.net
kanaga
sciencedirect big data base
Ernesto
Introduction about quantum dots in nanotechnology
Praveena Reply
what does nano mean?
Anassong Reply
nano basically means 10^(-9). nanometer is a unit to measure length.
Bharti
do you think it's worthwhile in the long term to study the effects and possibilities of nanotechnology on viral treatment?
Damian Reply
absolutely yes
Daniel
how to know photocatalytic properties of tio2 nanoparticles...what to do now
Akash Reply
it is a goid question and i want to know the answer as well
Maciej
characteristics of micro business
Abigail
for teaching engĺish at school how nano technology help us
Anassong
Do somebody tell me a best nano engineering book for beginners?
s. Reply
there is no specific books for beginners but there is book called principle of nanotechnology
NANO
what is fullerene does it is used to make bukky balls
Devang Reply
are you nano engineer ?
s.
fullerene is a bucky ball aka Carbon 60 molecule. It was name by the architect Fuller. He design the geodesic dome. it resembles a soccer ball.
Tarell
what is the actual application of fullerenes nowadays?
Damian
That is a great question Damian. best way to answer that question is to Google it. there are hundreds of applications for buck minister fullerenes, from medical to aerospace. you can also find plenty of research papers that will give you great detail on the potential applications of fullerenes.
Tarell
what is the Synthesis, properties,and applications of carbon nano chemistry
Abhijith Reply
Mostly, they use nano carbon for electronics and for materials to be strengthened.
Virgil
is Bucky paper clear?
CYNTHIA
carbon nanotubes has various application in fuel cells membrane, current research on cancer drug,and in electronics MEMS and NEMS etc
NANO
so some one know about replacing silicon atom with phosphorous in semiconductors device?
s. Reply
Yeah, it is a pain to say the least. You basically have to heat the substarte up to around 1000 degrees celcius then pass phosphene gas over top of it, which is explosive and toxic by the way, under very low pressure.
Harper
Do you know which machine is used to that process?
s.
how to fabricate graphene ink ?
SUYASH Reply
for screen printed electrodes ?
SUYASH
What is lattice structure?
s. Reply
of graphene you mean?
Ebrahim
or in general
Ebrahim
in general
s.
Graphene has a hexagonal structure
tahir
On having this app for quite a bit time, Haven't realised there's a chat room in it.
Cied
what is biological synthesis of nanoparticles
Sanket Reply
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get the best Algebra and trigonometry course in your pocket!





Source:  OpenStax, Thí nghiệm cad (computer-aided design). OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10797/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Thí nghiệm cad (computer-aided design)' conversation and receive update notifications?

Ask