SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150
Trang 1 /116
MỞ ĐẦU
^ ]
Ngày nay, kinh tế nước ta đã phát triển đáng kể. Các công ty, ngân hàng ra
đời ngày càng nhiều, thị trường chứng khoán đang dần sôi động,…Thêm vào
đó, dân số tăng nhanh làm cho vấn đề quản lý tài chính trở nên cần thiết và
quan trọng. Từ đó, yêu cầu phải có công cụ giúp giải quyết các bài toán trong
tài chính thật hiệu quả và đơn giản. Một trong những công cụ rất mạnh đó là
Matlab (Matrix Laboratory).
Để thấy được khả
năng ứng dụng của MatLab vào lĩnh vực tài chính, luận
văn sẽ trình bày tổng quan về Matlab (đặc biệt là hộp công cụ tài chính), giới
thiệu sơ lược các bài toán thông dụng trong tài chính và thiết kế hệ thống giải
một số bài toán tài chính thông qua Matlab.
Nhằm tạo sự giao tiếp thân thiện và thể hiện tính năng giao tiếp của MatLab
với các ngôn ngữ khác, hệ thống được thiết kế giao diện, xử lý trên nền
tảng .NET (cụ thể là ngôn ngữ C#) và sử dụng MatLab để tính toán.
Khả năng tích hợp MatLab với .NET chỉ được hỗ trợ từ MatLab version 7.2
trở lên (Hộp công cụ Matlab Builder for .NET).
Nội dung cụ thể
:
Giới thiệu các thành phần cơ bản của MabLab bao gồm:
- Khái niệm về MatLab
- Tính toán trên ma trận
- Đồ họa hai chiều
- Không gian 3D
- Lập trình trong MatLab
- Tạo giao diện người sử dụng đồ họa (GUI).
Chương 4: Thiết kế hệ thống giải các bài toán tài chính thông qua Matlab.
1
Financial Time Series: Chuỗi thời gian tài chính
SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150
Trang 3 /116
Chương 1
GIỚI THIỆU TỔNG QUAN VỀ MATLAB
1.1 Matlab là gì? (Xem chi tiết trong [1] [2], TLTK
2
)
Matlab (Matrix Laboratory) là phần mềm của tập đoàn The Math Works,
Inc. of Natick, Massachusetts – Mỹ, được phân chia thành các lĩnh vực ứng
dụng dựa vào các hộp công cụ (toolbox), đặc biệt là dùng trong tính toán kỹ
thuật. Matlab kết hợp việc tính toán, hiển thị và lập trình trong một môi
trường dễ sử dụng. Ở đó, các vấn đề và giải pháp được trình bày bằng những
ký hiệu toán học quen thuộc.
Nhà phân tích số học Cleve Moler đã xây dựng phiên bản đầu tiên của
Matlab vào những năm 1970 bằng FORTRAN. Sau đó, Matlab được viết
bằng ngôn ngữ C trên cơ sở các thư viện đã có và phát triển thêm nhiều lĩnh
vực ứng dụng khác. Nó đưa ra nhiều tác vụ thực tế được kết hợp với việc giải
quyết các vấn đề số học. Điều này làm giảm bớt thời gian suy nghĩ và khuyến
khích các thử nghiệm. Matlab cung cấp các lệnh mạnh và hiệu qu
ả, giúp hiện
thực những tác vụ phức tạp chỉ bằng một hoặc hai dòng lệnh. Ngoài những
; A
21
A
22
… A
2m
;……; A
n1
A
n2
… A
nm
];
Có thể xuống dòng hoặc dùng dấu “;” để ngăn cách các hàng của ma
trận. Các cột cách nhau bởi dấu “,” hoặc khoảng trắng. Nếu một hàng trong
ma trận có quá nhiều phần tử ta dùng dấu “…” và viết các phần tử còn lại ở
dòng kế tiếp.
Ví dụ: >>A = [2 4 5; 3 1 9; 7 2 6]
Kết quả: A =
627
913
542
Ngoài nhập trực tiếp từ dòng lệnh như trên, ta có thể tạo ma trận bằng
cách đọc từ một file dữ liệu đã có (trong Matlab file này có phần mở rộng
là .mat, .dat,…), dùng toán tử “:”
3
hoặc nhập từ bàn phím (dùng lệnh input).
Cách tạo một số ma trận đặc biệt:
Chú ý : Với phép nhân vô hướng hai ma trận cùng kích thước A và
B phải viết là A.*B thay vì A*B (số hàng ma trận A phải bằng số cột ma
trận B).
Lấy các giá trị của một ma trận:
(Xem chi tiết trong [4], TLTK)
M(i, j) : là phần tử dòng i cột j của ma trận M.
M(:, j) : là cột thứ j của ma trận M.
M(i:k, :) : biểu diễn các dòng từ i đến k.
M(i:k, j:l) : chọn ma trận con gồm các phần tử thuộc hàng từ i đến k và
từ cột j đến l.
Ví dụ: cho ma trận A =
61289
3251
1742
>>B = A(2:3, 2:3)
B =
128
25
1.2.1.3 Các hàm cơ bản : (Xem chi tiết trong [5], TLTK)
Hàm Ý nghĩa
size(A) Trả vể một vector hàng [m n] chứa kích thước của
mảng A có m hàng, n cột.
length(A) trong đó A là một ma trận, sẽ trả về số lớn nhất trong
hai số m, n
max(A) Nếu A là vector, sẽ trả về phần tử lớn nhất trong A;
Nếu A là một ma trận, sẽ trả về vector hàng chứa các
phần tử lớn nhất của mỗi cột
Tạo ra ma trận mới cùng kích thước và chứa các phần
tử thuộc và nằm phía trên đường chéo chính (hoặc thứ
k) của ma trận M. Các vị trí khác bằng 0.
tril(M)
triu(M, k)
Tạo ra ma trận mới cùng kích thước và chứa các phần
tử thuộc và nằm phía dưới đường chéo chính (hoặc thứ
k) của ma trận M. Các vị trí khác bằng 0.
Bảng 1. 2: Các hàm cơ bản về ma trận
1.2.2 Đồ họa hai chiều trong MatLab:
1.2.2.1 Một số lệnh kiểm soát: (Xem chi tiết trong [3], TLTK)
Lệnh Ý nghĩa
figure(gef) Hiển thị cửa sổ đồ họa hiện hành.
whitebg(ColorSpec) Thay đổi màu nền của màn hình đồ họa.
home Chuyển con trỏ đến vị trí “home”– vị trí phía trên
bên trái màn hình
clc Xóa màn hình lệnh
elf Xóa cửa sổ đồ họa hiện hành
hold on Giữ lại tất cả màn hình đã vẽ. Các lệnh sau sẽ thêm
vào màn hình đồ họa chứ không xóa màn hình cũ.
hold off Bỏ chức năng “hold on”, đây là trạng thái mặc định
của màng hình đồ họa.
ishold Trả về 1 nếu trạng thái của hold là on, ngược lại trả
về 0.
subplot(m,n,p) Chia màn hình đồ họa thành ma trận mxn của
những khung ảnh con với p là khung ảnh hiện hành.
Những khung ảnh con được đánh số theo chiều từ
là các hàng hoặc các cột của ma trận, phụ thuộc
vào kích thước hàng hoặc cột của vec-tơ có phù
hợp với ma trận hay không.
plot(X1,Y1, 'LineSpec', ) Vẽ tất cả các đường được định nghĩa bởi bộ ba
Xn, Yn và LineSpec. LineSpec là đặc tả xác định
kiểu đường, ký hiệu và màu của đường được vẽ.
(Xem danh sách các LineSpec ở phụ lục)
plot( ,'PName',PValue, ) Thiết lập các thuộc tính với các giá trị thuộc tính
được chỉ định cho tất cả các đối tượng đồ họa
lineseries tạo ra bởi lệnh plot.
plot(axes_handle, ) Vẽ trong hệ tọa độ với ô điều khiển axes_handle
thay cho hệ tọa độ hiện hành.
h = plot(…) Trả về một vec-tơ cột của các ô điều khiển cho
các đối tượng đồ họa lineseries, một ô điều khiển
trên một hàng.
hline = plot(‘v6’,…) Trả về các ô điều khiển cho các đối tượng đường
(line) thay cho đối tượng lineseries.
Bảng 1. 4: Cú pháp lệnh plot
Ví dụ: >>x = -pi:pi/10:pi;
>>y = tan(sin(x)) - sin(tan(x));
>>plot(x,y,' rs','LineWidth',2,
'MarkerEdgeColor','k',
'MarkerFaceColor','g',
'MarkerSize',10)
SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150
Trang 8 /116
Kết quả:
Trang 9 /116
1.2.3 Không gian 3D (3D – Visualization):
1.2.3.1 Tạo hình ảnh 3D:
Để tạo hình ảnh 3D, chúng ta có những bước cơ bản sau:
• Chuẩn bị dữ liệu
• Chọn cửa sổ và vị trí khu vực cần vẽ bên trong cửa sổ
• Gọi chức năng vẽ 3D
• Đặt thuộc tính colormap và shading
• Thêm thuộc tính lighting
• Đặt điểm nhìn
• Đặt trục giới hạn và tick marks
• Set aspect ratio(Đặt tỉ lệ
tương quan)
• Chú thích hình ảnh với nhãn tọa độ, chú giải và chủ đề
• In biểu đồ
1.2.3.2 Các hàm vẽ 3D cơ bản:
Hàm Ý nghĩa
plot3 (x, y, z) Tạo ra một đường 3D với các điểm tọa độ là thành phần của x,
y, z (với x, y, z là 3 vector có cùng độ dài) và sau đó tạo ra thể
hiện đường 2D nằm trên màn hình.
mesh(x, y, z ) Vẽ một khung lưới với màu được xác định bởi z để màu tương
ứng với độ cao của bề mặt. Nếu x, y là vec-tơ thì length(x) = n
và length(y)=m, [m,n] = size(z).
meshc(x, y, z ) Vẽ một hình đường nét ở dưới hình lưới.
surf(x ,y, z ) Tạo ra một bề mặt được tô đậm dần với z là đối số dùng để tô
màu.
Bảng 1. 6: Các hàm vẽ 3D cơ bản
1.2.3.3
Công cụ hiển thị bằng vùng sáng (Lighting as a Visualization Tool)
- none: tắt thuộc tính lighting.
- flat: tạo màu đồng nhất cho mỗi mặt của đối tượng. Chọn phương
pháp này để xem rõ một số
mặt của đối tượng.
- gouraud: tính toán màu tại đỉnh và nội suy màu thông qua các
mặt.Chọn phương pháp này để xem bề mặt cong.
- phong: Nội suy đỉnh qua mỗi mặt và tính toán hệ số phản xạ trên
mỗi pixel. Chọn phương pháp này để xem bề mặt cong. phong
lighting cho kết quả tốt hơn Gouraud nhưng mất nhiều thời gian để
thể hiện.
Material: Đặt thuộc tính hệ số phản xạ
của đối tượng light
Các thuộc tính lighting:
AmbientLightColor: Thuộc tính axes xác định màu nền của khung
nhìn, không định hướng và ảnh hưởng đồng đều đến tất cả đối tượng.
Hiệu ứng độ sáng xung quanh chỉ xuất hiện khi có một đối tượng light
có thể thấy được trong hệ trục.
AmbientStrength: Thuộc tính patch và surface xác định cường độ
thành phần ánh sáng xung quanh được phản xạ từ đối tượng.
SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150
Trang 11 /116
DiffuseStrength: Thuộc tính patch và surface xác định cường độ thành
phần ánh sáng khuếch tán được phản xạ từ đối tượng.
SpecularStrength: Thuộc tính patch và surface xác định cường độ
thành phần ánh sáng phản chiếu được phản xạ từ đối tượng.
SpecularExponent: Thuộc tính patch và surface xác định kích thước
chỗ phản chiếu sáng nhất.
SpecularColorReflectance: Thuộc tính patch và surface xác định mức
nó hoàn toàn mờ đục.
SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150
Trang 12 /116
Hàm Transparency:
alpha : Đặt, truy vấn thuộc tính Transparency cho những đối tượng
trong tọa độ hiện tại.
- Thuộc tính FaceAlpha: flat, interp, texture, opaque(=1), clear(=0).
- Thuộc tính AlphaData: x, y, z, color, rand
- Thuộc tính AlphaDataMapping: scaled, direct, none.
alphamap: Xác định hình thái alphamap
- Parameter: default, rampup, rampdown, vup, vdown, increase,
decrease, spin.
alim: Đặt, truy vấn giới hạn tọa độ alpha
- alimMode: auto, manual.
1.2.4 Lập trình trong Matlab:
1.2.4.1 Cấu trúc dữ liệu:
Cấu trúc dữ liệu đơn giản nhất trong Matlab là ma trận – một hình chữ
nhật hai chiều có khả năng lưu trữ nhiều yếu tố dữ liệu trong một định dạng
dễ truy cập. Các yếu tố này có kiểu là số, ký tự, logic, hoặc các kiểu cấu
trúc khác của Matlab. Matlab dùng ma trận để lưu trữ các số đơn hay chuỗi
số tuyến tính đề
u rất tốt. Trong trường hợp này, kích thước lần lượt là 1-1
hoặc 1-n (với n là chiều dài của chuổi số). Matlab cũng hỗ trợ các cấu trúc
dữ liệu nhiều hơn hai chiều.
1.2.4.2 Kiểu dữ liệu:
Có nhiều kiểu dữ liệu khác nhau được dùng trong Matlab. Có thể xây
dựng các ma trận và mảng của dữ liệu nguyên và thực, ký tự và chuổi,
logic,…Ta cũng có thể tạo ra các kiểu dữ liệu b
ảng ký tự hai chiều như sau:
>>Ten_Lop = [‘Nguyen Van A’; ‘Lop 02CNPM’]
Có thể chuyển đổi qua lại giữa hai kiểu dữ liệu numeric và string.
Kiểu số
(numeric):
Kiểu dữ liệu số trong Matlab bao gồm các số nguyên (integer) có dấu
và không dấu, single và double.
Cách tạo dữ liệu kiểu số nguyên: >>tên biến = kiểu(giá trị)
Ví dụ: để tạo biến x có giá trị là 123 kiểu integer 16 bit ta viết:
>>x = int16(123);
Riêng với kiểu double không cần viết x = double(123.456). Ta viết
x = 123.456. Vì mặc định, Matlab lưu trữ các giá trị số là kiểu double.
Mảng các ô (Cell Arrays):
Mảng ô cung cấp một cơ chế lưu trữ cho các loại dữ liệu khác nhau.
Có thể lưu các mảng của kiểu và/hoặc kích thước khác nhau bên trong các
ô của mảng ô. Để truy cập dữ liệu bên trong mảng các ô, ta dùng chỉ mục
ma trận tương tự như các mảng và ma trận trong Matlab. Tuy nhiên, phải
dùng cặp ngoặc {} thay vì () như thông thường.
SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150
Trang 14 /116
Tạo mảng các ô bằng cách sau:
+ Dùng các câu lệnh có sẵn.
+ Chỉ định mảng dùng hàm “cell”, sau đó đưa dữ liệu vào.
Kiểu cấu trúc (structure):
Cấu trúc là mảng Matlab với tên “data containers” được gọi là trường
(feild). Các trường của một cấu trúc có thể chứa bất kỳ loại dữ liệu nào.
cập biến đó.
Matlab không xóa chúng trong bộ nhớ khi thoát khỏi hàm. Vì
vậy giá trị của nó được giữ lại từ một hàm gọi đến hàm kế tiếp.
Cách khai báo
: persistent <tên_biến>
SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150
Trang 15 /116
Khi ta xóa hàm mà biến thường trực được định nghĩa (dùng
lệnh clear <tên hàm> hoặc clear all), hoặc chỉnh sửa M-file cho
hàm đó, thì Matlab sẽ xóa tất cả các biến thường trực được sử dụng
trong hàm.
Đặt tên biến: Tên biến trong Matlab phải bắt đầu bằng một chữ cái,
tiếp theo là các chữ cái, số, hay dấu gạch dưới. Matlab phân biệt chữ
hoa và thường. Mặc dù tên biến có thể dài tùy thích, nhưng Matlab chỉ
dùng N (được trả v
ề từ hàm namelengthmax) ký tự đầu tiên của tên
biến. Vì vậy, nên đặt tên biến trong khoảng N (N = 63) ký tự để
Matlab có thể phân biệt các biến với nhau.
Các toán tử
(operators):
- Matlab cung cấp các toán tử dùng trong tính toán số học như sau:
Toán tử Mô tả
+ Cộng
- Trừ
.* Nhân
./ Chia phải
.\ Chia trái
+ Số dương
- Số âm
trị khác nhau. Ngược lại trả về 0.
Bảng 1. 9: Toán tử logic
Câu lệnh điều kiện:
Lệnh if: đánh giá biểu thức logic và thực thi nhóm lệnh dựa trên
giá trị của biểu thức. Các lệnh if có thể lồng nhau.
Cú pháp: if <biểu thức logic>
Nhóm lệnh
end
Nếu biểu thức logic đúng thì thực hiện nhóm lệnh. Nếu sai thì
nhảy đến lệnh end.
Lệnh else:
Cú pháp: if <biểu thức điều kiện>
Nhóm lệnh 1
else
Nhóm lệnh 2
end
Nếu biểu thức logic đúng thì thự
c thi Nhóm lệnh 1. Ngược lại thì
thực thi Nhóm lệnh 2.
Lệnh elseif:
Cú pháp: if <biểu thức logic 1>
Nhóm lệnh 1
elseif <biểu thức logic 2>
Nhóm lệnh 2
……
elseif <biểu thức logic n>
Nhóm lệnh n
end
end
Chỉ số = giá trị đầu, nếu chỉ số âm thì không thực hiện vòng lặp.
Nếu chỉ số < giá trị đích thì thực hiện ‘Nhóm lệnh’.
Tăng chỉ số lên một giá trị = gia số
(mặc định là 1). So sánh với
giá trị đích nếu chưa bằng thì thực hiện ‘Nhóm lệnh’. Ngược lại,
kết thúc vòng lặp. Quá trình này lặp lại cho đến khi chỉ số = giá trị
đích.
+ Cú pháp 2: for chỉ số = <biểu thức>
Nhóm lệnh
end
SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150
Trang 18 /116
<Biểu thức> là một ma trận (một vec-tơ hay một đại lượng vô
hướng), ‘Nhóm lệnh’ được thực thi với số lần bằng số cột của ma
trận biểu thức. Trong mỗi bước lặp chỉ số = giá trị của một phần tử
của ma trận.
Nếu biểu thức là ma trận rỗng thì vòng lặp không được thực thi.
Vòng lặp while: thực hiện m
ột lệnh hoặc một nhóm lệnh lặp đi lặp
lại nhiều lần khi biểu thức là đúng ( bằng 1).
Cú pháp: while <biểu thức>
Nhóm lệnh
end
Nếu <biểu thức> đúng thì thực hiện ‘Nhóm lệnh’. Lặp lại cho
đến khi <biểu thức> sai thì kết thúc vòng lặp.
Nếu biểu thức luôn luôn đúng thì vòng lặp sẽ lặp mãi mãi.
Trong trường hợp này ta dùng Ctrl+C để thoát khỏi vòng lặp.
Lệnh break: k
Matlab tự động nhận biết các biến và giá trị của chung khi ta
đưa vào chương trình.
Để chạy script file ta chỉ cần gõ tên file (không cần ph
ần mở
rộng) và nhấn phím (Enter). Khi thực thi nội dung file không
được hiển thị lên màn hình.
Một số lệnh cơ bản dùng trong script file:
Lệnh Ý nghĩa
disp(…) Hiển thị giá trị của biến hoặc hiển thị một chuỗi (nằm
trong cặp nháy đơn),…
input(‘text’) Hiển thị chuỗi ký tự và dấu nhắc chờ nhận một giá trị từ
bàn phím.
keyboard Trao điều khiển tạm thời cho bàn phím.
echo Điều khiển cửa sổ lệnh lặp lại các lệnh của script-file
trong khi thực thi. Được dùng để debug hoặc hiển thị các
lệnh trong M-file khi chúng được thực thi.
type(‘filename’) Hiển thị nội dung của file có tên nằm trong cặp nháy
đơn. Nội dung được hiển thị trong cửa sổ lệnh của
Matlab.
what Cho biết các file M-file và MAT-file có trong vùng làm
việc hiện hành hay không.
mfilename Trả về tên của M-file đang chạy.
pause Dừng lại đến khi người dùng nhấn phím bất kỳ.
pause(n) Dừng lại n giây.
waitforbuttonpress Dừng lại cho đến khi người dùng nhấn chuột hoặc phím.
Bảng 1. 10: Các lệnh cơ bản dùng trong script file
Hàm (function) và tạo hàm trong Matlab
Function là một chương trình thủ tục (routine), được hiện thực trong
biến cục bộ.
Ví dụ: function [tsr1, tsr2,…,tsrn] = tên_hàm(tsv1, tsv2,…,tsvn)
% ghi chú 1…
% ghi chú n
<Nhóm lệnh>
1.2.5 Tạo giao diện người sử dụng đồ họa (Graphic User Interface – GUI)
1.2.5.1 Tạo firgure
Trong MatLab, GUI là figure. Trước khi thêm các thành phần vào figure,
cần tạo một figure xác định. f = figure, f là handle của figure.
Chú ý
: Trước khi tạo các thành phần mà không có figure thì MatLab có
thể tạo figure tự động nhưng ta không biết handle của figure.
Sau đây là các thuộc tính của figure:
MenuBar: hiển thị bảng chọn của Menu bar.
- Giá trị: none,figure(mặc định).
Name: Tựa đề hiển thị trong cửa sổ figure. Nếu NumberTitle là on,
chuỗi này được thêm vào số figure.
- Giá trị: string
SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150
Trang 21 /116
NumberTitle: on( mặc định ), off.
Position: kích thước của figure GUI và vị trí của nó cân đối với góc
dưới bên trái màn hình.
- [ left, bottom, width, height ]
Resize: Xác định khả năng người dùng có thể thay đổi kích thước
figure bằng chuột.
- Giá trị: on( mặc định ), off.
Toolbar: Hiển thị hoặc ẩn thanh công cụ mặc định.
- none: không hiển thị thanh công cụ.
Trang 22 /116
Pop-Up Menu: hiển thị danh sách chọn lựa khi người dùng click vào
mũi tên.
- function: uicontrol
Push Button: tạo ra một tác động khi nó được click.
- function: uicontrol
Radio Button: giống check box nhưng radio button chỉ cho phép chọn
duy nhất một yêu cầu trong nhóm yêu cầu. radio button trước sẽ
không được chọn khi có một radio button khác được chọn.
- function: uicontrol
Slider:
- function: uicontrol
Static Text: dùng để gán nhãn cho các control khác, cung cấp hướng
dẫn cho người dùng.
-
function: uicontrol
Toggle Button: tạo ra tác động và nhận biết chúng bật hay tắt. Khi
click vào, nó bị nhấn xuống. Chỉ khi nào ta click một lần nữa nó mới
về trạng thái ban đầu. Nó giống như radiobutton.
- function: uicontrol
1.2.5.3 Thêm điều khiển giao diện người dùng (User Interface Controls)
uich = uicontrol( parent, ‘PropertyName’, ‘PropertyValue’, )
Nếu không xác định parent thì figure hiện tại được xem parent
Các thuộc tính được dùng phổ biến
- Max: giá trị lớn nhất, phụ thuộc vào thuộc tính Style. Mặc định là 1.
- Min: giá trị lớn nhất, phụ thuộc vào thuộc tính Style. Mặc định là 0.
- Position: kích thước và vị trí của thành phần tương ứng với parent.
- String: Tạo tựa đề
- Style: pushbutton( mặc định ), togglebutton, radiobutton, checkbox,
Style = ‘slider’
- Max – Min: xác định khoảng giá trị của slider.
- value: min <= value <= max.
- SliderStep = [min_step, max_step].
min_step: giá trị nhỏ nhất khi thay đổi.
max_step: giá trị lớn nhất khi thay đổi.
Static Text:
- Style = ‘text’
Toogle Button:
- Style = ‘tooglebutton’
- value = 1: chọn, value = 0: không chọn
1.2.5.4 Thêm Panel và Button Groups
Các thuộc tính được dùng phổ biến
- Parent: Xác định figure, panel, group button là thành phần cha.
- Position: Kích thước và vị trí của thành phần trong parent của nó.
- Title: Dùng để gán nhãn.
- TitlePosition: vị trí của title.
Các giá trị: lefttop( mặc định ), centertop, righttop, leftbottom,
centerbottom, rightbottom.
SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150
Trang 24 /116
- Units: Đơn vị đo lường.
Các giá trị: pixels, normalized( mặc định ), inches,
centimeters, points, characters.
Panel:
- ph = uipanel(‘PropertyName’, ‘PropertyValue’,….)
Button Groups:
- bgh = uibuttongroup( ‘PropertyName’, ‘PropertyValue’,….)
1.2.5.5 Thêm Axes
Trang 25 /116
stackopt = bottom: di chuyển h xuống vị trí dưới cùng của thứ
tự hiện tại.
- uistack( h, ‘up’, n ): di chuyển h lên n bậc.
- uistack(h, ‘down’, n): di chuyển h xuống n bậc.
1.2.5.9 Tạo Menus
mh = uimenu(parent,'PropertyName',PropertyValue, )
set(f, ‘MenuBar’, ’figure’): hiển thị menubar. Đây là thuộc tính mặc
định.
set( f, ‘MenuBar’, ‘none’): không hiển thị menubar.
Thuộc tính phổ biến:
- Accelerator: Cho phép người dùng chọn menu item bằng cách
Ctrl+Accelerator.
Giá trị : character
- Checked:
on: Chọn
off( mặc định ): Không chọn.
- Enable: cho phép sử dụng
on( mặc định ): cho phép sử dụng.
off: item bị mờ, không dùng được.
- HandleVisibility: Xác định handle của nó có nằm trong danh sách
của parent của nó
on( mặc định):
off: để ngăn chặn những hoạt động không mong đợi.
- Label:
String: dùng hiển thị nhãn cho menu
- Position: vị trí menu item trong menu.
- Separator: Đường chia.
on: Hiển thị.