ĐỒ HỌA CĂN BẢN (tt)
Thí dụ lệnh fplot trong số phức:
>> f='cos(tan(x))-tan(sin(x))';
>> fplot(f,[1 2])
©Copyright 2007
MATLAB
61
ĐỒ HỌA CĂN BẢN (tt)
Các lệnh vẽ trong các tọa độ đặc biệt
Polar(t,r): vẽ đồ thị trong tọa độ cực
Semilogx(x,y): Vẽ hàm y theo x với trục y vẽ theo thang log
Semilogy(x,y): Vẽ hàm y theo x với trục x vẽ theo thang log
Loglog(x,y) Vẽ hàm y theo x với thang log cho cả 2 trục tọa
độ
Plotyy(x,y,’function’): Vẽ đồ thị với 2 trục y theo kiểu vẽ
được chọn trong function. Trong đó function nhận các giá
trị plot, semilogy, semilogx…
Plot3(x,y,z): vẽ đường trong không gian 3 chiều.
Subplot(m,n,p): Chia cửa sổ figure ra nhiều ô, m ô theo
chiều đứng, n ô theo chiều ngang, vẽ đồ thị trong ơ thứ p.
©Copyright 2007
MATLAB
62
ĐỒ HỌA CĂN BẢN (tt)
Thí dụ:
Lệnh polar(t,r): Vẽ đồ thị góc t (radian) trong tọa độ cực theo
bán kính r.
Lệnh polar(t,r,’linestype’): Vẽ góc t với đường vẽ và nét xác
định ‘linestype’.
>>t = 0:.1:2*pi;
>>polar(t,sin(2*t))
>>polar(t,sin(2*t),'m-')
©Copyright 2007
MATLAB
63
ĐỒ HỌA CĂN BẢN (tt)
Thí dụ, vẽ đường xoắn ốc Archimeder r = 2Ѳ với Ѳ thuộc [0, 4pi]
>> r = 2*t;
>> polar(t,r),title('Duong xoan oc Archimede r = 2\t');
©Copyright 2007
MATLAB
64
ĐỒ HỌA CĂN BẢN (tt)
Thí dụ lệnh loglog(x,y)
>> x = logspace(-1,2);
>> loglog(x,exp(x))
©Copyright 2007
MATLAB
65
ĐỒ HỌA CĂN BẢN (tt)
Thí dụ lệnh semilogx(x,y)
>> x = logspace(-2,3);
>> y = x.^12 + 10;
>> semilogx(x,y) %tương tự cho lệnh semilogy()
©Copyright 2007
MATLAB
66
ĐỒ HỌA CĂN BẢN (tt)
Thí dụ :
>> t=0:pi/20:6*pi;
>> x=sin(t);
>> y=sin(t-pi/2);
>> z=t;
>> subplot(121)
>> plotyy(t,x,t,y,'plot')
>> grid on
>> subplot(122)
>> plot3(x,y,z)
>> grid on
©Copyright 2007
MATLAB
67
ĐỒ HỌA CĂN BẢN (tt)
Các lệnh vẽ liên quan đến SỐ PHỨC
quiver(x,y): vẽ các vector xuất phát từ các vị trí khác
nhau.
fearther(x,y): Vẽ các vector xuất phát từ trục x.
compass(x,y): Vẽ các vector từ một điểm gốc trong
hệ tọa độ cực.
rose(x)
©Copyright 2007
MATLAB
68
Thí dụ-Lệnh quiver
Giả sử ta có một trường vector như sau trong khơng gian R2:
y , thử vẽ hình ảnh của trường
, Q(x,y) =
trong phạm vi x thuộc [1,5] và y thuộc [1,5].
P(x,y) =
x
Trước hết ta viết một sript file (lưu file này với tên Quiver.m)
như sau:
©Copyright 2007
MATLAB
69
Thí dụ-Lệnh quiver (tt)
Sau đó, ta chạy file sript này(Gõ tên file này trong cửa sổ
lệnh->Enter), ta được hình ảnh sau:
©Copyright 2007
MATLAB
70
ĐỒ HỌA CĂN BẢN (tt)
Các lệnh thao tác và điều khiển
Hiển thị cửa sổ đồ họa hiện hành figure(gef)
figure
Tạo ra cửa sổ đồ họa
figure(‘propertyname’,’propertyvalue’,…)
hold
Chuyển từ trạng thái hold là on sang off và ngược
lại
hold on
Giữ lại tất cả màn hình đã vẽ
hold off
Xóa các màn hình đã vẽ chỉ thể hiện màn hình hiện
hành mới (Chế độ mặc định)
axis
Cân chỉnh trục tọa độ và hình dạng của nó
grid
Grid On/ grid off/ grid: Tạo/ tắt lưới cho đồ thị
shg
Hiển thị đồ thị trên màn hình
clg
Xóa đồ thị trên màn hình
zoom
Co vào hoặc dãn ra của đồ thị
©Copyright 2007
MATLAB
71
ĐỒ HỌA CĂN BẢN (tt)
CÁC LỆNH VĂN BẢN TRÊN MÀN HÌNH ĐỒ HỌA
title(‘text’,’property 1’,’property 2’,…): Tiêu đề cho đồ thị
xlabel(‘text’,’property 1’,’property 2’,…): Nhãn trục hoành độ
ylabel(‘text’,’property 1’,’property 2’,…): Nhãn trục tung độ
text(x,y,z,‘chuỗi ‘): Văn bản ở bất kỳ vị trí nào trên đồ thị. X, Y là
tọa độ tâm bên trái của đồ thị.
legend(x,y): Chú thích của đường trên đồ thị
gtext(‘C’): Văn bản ở vị trí con trỏ.
©Copyright 2007
MATLAB
72
ĐỒ HỌA CĂN BẢN (tt)
ĐỌC DỮ LIỆU TỪ MÀN HÌNH ĐỒ HỌA
Lấy tọa độ diểm trên đồ thị, khi một đồ thị được vẽ
xong, nếu muốn lấy tọa độ của một số điểm trên
đường này, ta sẽ dùng lệnh [x,y] = ginput(n); n là
số điểm cần lấy tọa độ.
Khi đồ thị hiện ra, ta nhấn phím trái chuột vào các
vị trí mong muốn lấy tọa độ trên đồ thị, các hoành
độ sẽ được chứa trong vector và tung độ trong
vector y.
©Copyright 2007
Nếu quan hệ giữa hai đại lượng x, y cần được vẽ
bằng các điểm rời rạc, thay vì là đường nối các
điểm (x,y) như vẽ hàm, hàm plot sẽ dùng các điểm
được đánh dấu (data makers)
MATLAB
73
ĐỒ HỌA CĂN BẢN (tt)
Thí dụ, vẽ đồ thị từ số liệu rời rạc bằng cách sử dụng điểm đánh
dấu.
>> x=[5:18];
>> y=[1,2,3,5,4,5,5,7,8,6,9,11,14,20];
>> plot(x,y,'r s')
R: màu đỏ, s: hình vng
©Copyright 2007
MATLAB
74
ĐỒ HỌA CĂN BẢN (tt)
Thí dụ:
Nếu muốn nối liền các điểm được đánh dấu này bằng các
đoạn thẳng, chúng ta có thể vẽ 2 lần.
>>plot(x,y,'r o',x,y)
©Copyright 2007
MATLAB
75
ĐỒ HỌA CĂN BẢN (tt)
Ngoài ra trong lệnh plot ta có thể đưa các thơng số ‘lineWidth’
để định độ rộng của đường vẽ, thông số ‘MarkerSize’ để định
độ lớn (chiều cao) của các điểm được đánh dấu và thông số
“Color” để định màu của đồ thị.
Thí dụ: >>plot(x,y,’o-
’,’LineWidth’,3,’MarkerSize’,8,’Color’,’red’)
©Copyright 2007
MATLAB
76
ĐỒ HỌA CĂN BẢN (tt)
-
Điền tiêu đề cho đồ thị, ta sử dụng lệnh: title(‘text’).
-
Tạo lưới cho đồ thị: grid on
Thí dụ: <
©Copyright 2007
MATLAB
77
ĐỒ HỌA CĂN BẢN (tt)
Kiến tạo hệ trục tọa độ
Lệnh
Mô tả
Axis([xmin xmax ymin ymax])
Thiết lập các giá trị min, max của hệ trục
dùng các giá trị được đưa ra trong vecto
hàng.
V= axis
V là vector cột có chứa thang chia cho đồ thị
hiện tại: [xmin xmax ymin ymax]
Axis auto
trả lại giá trị mặc định thang chia
Axis(‘auto’)
Xmin=min(x), xmax = max(x)…
Axismanual
Giới hạn thang chia nh thang chia hiện tại
Axis xy
Sử dụng (mặc định) hệ tọa độ decac trong đó
gốc tọa độ ở góc thấp nhất bên trái, trục
ngang tăng từ trái qua phải, trục đứng tăng
từ dưới lên.
©Copyright 2007
MATLAB
78
ĐỒ HỌA CĂN BẢN (tt)
Lệnh
Mô tả
Axis ij
Sử dụng hệ tọa độ ma trận, trong đó góc tọa độ ở
đỉnh góc trái, trục đứng tăng từ đỉnh xuống, trục
ngang từ trái qua phải.
Axissquare
Thiết lập đồ thị hiện tại là hình vng, so với mặc
định là hình chữ nhật.
Axisequal
Thiết lập thang chia giống nhau cho cả hai hệ trục
Axis tightequal
Tương tự như axisequal nhưng hộp đồ thị vừa đủ
đối với dữ liệu
Axis normal
Tắt đi chế độ axis, equal, tight và vis3d
Axis off
Tắt bỏ chế độ nền trục, nhãn, lưới, và hộp, dấu.
Thoát khỏi chế độ lệnh title và bất cứ lệnh label nào
và thay đổi bởi lệnh text và gtext.
Axis on
Ngược lại với axis off nếu chúng có thể
©Copyright 2007
MATLAB
79
ĐỒ HỌA CƠ BẢN (tt)
Thí dụ:
>>x=linspace(0,2*pi,30);
>>y=sin(x);
>>z=cos(x);
>>plot(x,y,x,z)
>>box off
% Sau khi sử dụng lệnh
>>axis off
>>axis ij
>>axis square equal
>>axis xy normal
©Copyright 2007
MATLAB
80
ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU
Các lệnh vẽ trong tọa độ Đềcac ba chiều
plot3: Vẽ đường thẳng và điểm trong khơng gian 3
chiều
Thí dụ:
Vẽ đường cong tham số:
x =e-0.05tsint
y =e-0.05tcost
z = t ∈[0,10π]
©Copyright 2007
MATLAB
81
ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt)
Thực hiện
>> t = [0:pi/50:10*pi];
>> x = exp(-0.05*t).*sin(t);
>> y = exp(-0.05*t).*cos(t);
>> z = t;
>> plot3(x,y,z),xlabel(‘x’),ylabel(‘y’),zlabel(‘z’)
>> zlabel(‘z’),grid;
©Copyright 2007
MATLAB
82
ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt)
CÁC LỆNH VẼ BIÊN DẠNG (contour)
contour: Vẽ các đường đồng mức
clabel: Nhãn
©Copyright 2007
MATLAB
83
ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt)
CÁC LỆNH TẠO LƯỚI (grid)
Meshgrid(x,y)
Meshgrid(x,y,z)
Cylinder(r,u)
[X,Y,Z] = CYLINDER(R,N) forms the unit cylinder based on the
generator curve in the vector R. Vector R contains the radius at
equally spaced points along the unit height of the cylinder. The
cylinder has N points around the circumference. SURF(X,Y,Z)
displays the cylinder.
[X,Y,Z] = CYLINDER(R), and [X,Y,Z] = CYLINDER default to N
= 20 and R = [1 1].
Sphere(n)
SPHERE Generate sphere.
[X,Y,Z] = SPHERE(N) generates three (N+1)-by-(N+1) matrices
so that SURF(X,Y,Z) produces a unit sphere.
[X,Y,Z] = SPHERE uses N = 20.
©Copyright 2007
MATLAB
84
ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt)
Tạo một lưới các điểm trong mặt phẳng xy
Cú pháp:
[X,Y] = meshgrid(x,y)
Trong đó:
x = [xmin,Δx,xmax]
y = [ymin,Δy,ymax]
Chức năng:
©Copyright 2007
−
Hàm meshgrid sẽ phát sinh các tọa độ của một lưới chữ
nhật có m.n điểm với một góc (xmin,ymin) cịn góc kia là
(xmax,ymax).
−
Ma trận X có kích thước m.n gồm n cột giống nhau là vector
x’ và ma trận Y cũng có kích thước m.n hàng giống nhau là
vector y.
−
Mỗi ơ lưới sẽ có kích thước Δx, và Δy.
MATLAB
85