1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI 5 đồ họa TRONG MATLAB

9 1,3K 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 163 KB

Nội dung

Tạo ra đồ thị Hàm plot có nhiều dạng, phụ thuộc vào các biến đầu vào:  Nếu Y là một véc tơ, hàm plotY sẽ in ra đồ thị Y phụ thuộc vào chỉ số của nó trong véc tơ  Nếu X, Y là hai véc tơ

Trang 1

bài 5: Đồ hoạ trong Matlab

MATLAB có các công cụ hết sức hữu hiệu để hiển thị các véc tơ và ma trận ở dạng đồ thị cũng nh việc chú thích và in ấn đồ thị này Trong chơng này chúng ta sẽ đề cập một vài hàm quan trọng nhất về đồ hoạ của Matlab và đa ra một số thí dụ điển hình

I Tạo ra đồ thị

Hàm plot có nhiều dạng, phụ thuộc vào các biến đầu vào:

 Nếu Y là một véc tơ, hàm plot(Y) sẽ in ra đồ thị Y phụ thuộc vào chỉ số của nó trong véc tơ

 Nếu X, Y là hai véc tơ cùng độ lớn hàm PLOT(X,Y) sẽ in ra đồ thị hàm Y(X)

Ví dụ: để vẽ đồ thị hàm Sin với trị số hoành độ từ 0 đến 2 Pi ta dùng các dòng lệnh sau: x=0:pi/100:2*pi;

y=sin(x);

plot(x,y)

Nếu đối số trong hàm bao gồm nhiều bộ X, Y, Hàm sẽ đa ra đợc nhiều đồ thị trên màn hình

và Matlab sẽ tự động hiển thị các đồ thị với các màu khác nhau

Ví dụ :

Nếu ta có: y1= sin(x); y2=sin(x-0.25); y3=sin(x-0.5)

Hàm : plot(x,y1,x,y2,x,y3) sẽ đa ra bộ đồ thị nh hình vẽ

Trong hàm plot ta cũng có thể chỉ định kiểu đờng nét, màu sắc và kiểu đánh dấu các điểm nút với cú pháp:

plot(x,y,'color_style_marker')

Trong đó color_style_marker là một bộ 1,2 hoặc 3 ký tự phân cách bằng dấu ngoặc đơn chỉ

định kiểu đờng nét, màu sắc và kiểu đánh dấu các điểm nút

 Các chữ cái chỉ màu sắc bao gồm: 'c', 'm', 'y', 'r', 'g', 'b', 'w', và 'k' Tơng ứng với màu xanh dơng, màu gạch non, màu vàng, màu đỏ, màu xanh, màu nớc biển, màu trắng và đen

 Các ký tự chỉ kiểu đờng bao gồm '-' đối với nét liền, '- -' đối với đờng gạnh, ':' đ-ờng chấm, '-.' đđ-ờng chấm gạch, và 'none' khi không vẽ đđ-ờng

 Các ký tự để đánh dấu điểm bao gồm: '+', 'o', '*', và 'x'

Ví dụ: câu lệnh plot(x,y,'y:+') vẽ ra đồ thị là đờng chấm chấm màu vàng có dấu + đánh dấu các điểm nút

Chú ý:

1 Lệnh plot sẽ tự động mở ra một cửa sổ đồ hoạ mới Nếu cửa sổ này đã tồn tại lệnh plot mặc

định sẽ sử dụng cửa sổ này Để mở một cửa sổ mới và đa nó thành hiện thời ta dùng lệnh figure

2 Để đa một cửa sổ đã mở thành hiện thời ta dùng câu lệnh figure(n), trong đó n là số trên thanh tiêu đề của cửa sổ

Trang 2

3 Vẽ thêm đờng cong mới vào một đồ thị đã có : Lệnh hold cho phép bạn thêm đờng cong vào

đồ thị đã có Nếu bạn đặt chế độ hold on Matlab sẽ không xoá đồ thị đã có và vẽ thêm đờng cong mới khi gọi lệnh vẽ

Ví dụ:

[x,y,z] = peaks;

contour(x,y,z,20,'k')

hold on

pcolor(x,y,z)

shading interp

 Câu lệnh Contour sẽ vẽ ra đờng chu tuyến tạo bởi hàm peaks

 Hold on sẽ đảm bảo cho câu lệnh pcolor đợc phối hợp với các đờng cong đã vẽ ra bằng lệnh contour trên cửa sổ

II Lệnh Subplot

 Hàm subplot sẽ chia cửa sổ đồ hoạ ra nhiều phần để hiện thị nhiều đồ thị trên một cửa sổ

 Cú pháp : sublot(m,n,p)

Trong đó m,n,p là các số nguyên, sẽ chia cửa sổ đồ hoạ ra m hàng và n cột và đ a phần cửa

sổ thứ p thành hiện thời Chỉ số các cửa sổ con đợc xác định từ phải qua trái và từ trên xuống dới

Ví dụ:

Các câu lệnh sau:

t = 0:pi/10:2*pi;

[X,Y,Z] = cylinder(4*cos(t));

subplot(2,2,1)

mesh(X)

subplot(2,2,2); mesh(Y)

subplot(2,2,3); mesh(Z)

subplot(2,2,4); mesh(X,Y,Z)

sẽ cho ta kết quả nh hình vẽ

Trang 3

III Điều khiển

số các tuỳ chọn để thay đổi tỷ lệ, hớng và tỷ lệ Thông thờng matlab xác định giá trị lớn nhất và nhỏ nhất của dữ liệu để chọn một vùng vẽ tơng xứng Lệnh axis sẽ quy định lại các giá trị này theo yêu cầu của ngời dùng:

axis([xmin xmax ymin ymax])

Lệnh axis cũng chấp nhận một số các từ khoá để điều khiển việc vẽ các trục:

 axis square : Tạo cho toàn bộ trục x và y có cùng chiều dài

 axis equal : tạo ra các khoảng chia trên trục X và Y có chiều dài nh nhau

 axis auto : Trả lại chế độ mặc định trong việc vẽ ra các trục

 axis on : Viết ra tên của trục và đánh dấu các điểm chia trên trục

 axis off : Huỷ bỏ việc viết ra tên của trục và đánh dấu các điểm chia trên trục

Ví dụ:

Các câu lệnh

x = 0:.025:pi/2;

plot(x,tan(x),'-ro')

Sẽ sử dụng hệ số tỷ lệ tự động trên cơ sở của giá trị Ymax=tan(1.57), có giá trị >1000:

Tuy nhiên đồ thị trên không thể hiện đợc quan hệ hàm số một cách rõ nét Kết quả nhận đợc sẽ tốt hơn nếu ta gõ lệnh:

axis([0 pi/2 0 5])

2 Câu lệnh Grid

grid off : không vẽ ra các đờng lới

grid on : vẽ ra các đờng lới

grid: Đảo ngợc tình trạng hiển thị hiện thời của lới.

IV ghi chú trên đồ thị

1 Hàm xlabel, ylabel và zlabel :

Đa vào dòng chú giải các trục x, y, z

Cú pháp:

xlabel('string')

xlabel(fname)

xlabel( ,'PropertyName',PropertyValue, )

h = xlabel( )

Mô tả

Mỗi trục của đồ thị có thể có nhãn riêng đợc tạo ra bằng các lệnh xlabel, ylabel hoặc zlabel xlabel('string') Ghi chú cho trục x của hệ toạ độ hiện thời

Trang 4

xlabel(fname) Lấy giá trị của hàm fname, với kết quả là một chuỗi, sau đó hiển thị chuỗi

đó bên cạnh trục x

xlabel( ,'PropertName',PropertyValue, ) Cho phép chúng ta gán các

thuộc tính khác nhau cho nhãn của trục x (xem phần các đặc tính của văn bản đồ hoạ)

2 Hàm title :

Chèn vào dòng tên đồ thị

Cú pháp:

title('string')

title(fname)

title( ,'PropertyName',PropertyValue, )

h = title( )

Mô tả

Chúng ta có thể dùng lệnh title để viết tiêu đề cho đồ thị:

title('string') Dùng chuỗi 'string' làm tiêu đề cho đồ thị

title(fname) Xác định giá trị của hàm chuỗi fname và dùng nó làm tiêu đề cho đồ thị trên cửa sổ đồ hoạ hiện thời

title( ,'PropertyName',PropertyValue, ) Cho phép quy định các thuộc

tính khác nhau cho tiêu đề của đồ thị

3 Hàm text :

chèn văn bản vào điểm bất kỳ trên đồ thị

Cú pháp:

text(x,y,'string')

text(x,y,z,'string')

text( 'PropertyName',PropertyValue )

 Trong đó x,y là toạ độ của điểm sẽ xuất văn bản ra:

 'string' là chuỗi văn bản đợc xuất ra

Trong trờng hợp muốn xuất ra nhiều dòng văn bản, thay cho việc đa vào chuỗi 'string', chúng ta hãy đa vào mảng khối với các phần tử của mảng là các dòng văn bản

Ví dụ dới đây sẽ tạo ra hai mảng khối, một dùng cho hàm uicontrol và mảng thứ 2 dùng cho lệnh text

str1(1) = {'Center each line in the Uicontrol'};

str1(2) = {'Also check out the textwrap function'};

str2(1) = {'Each cell is a quoted string'};

str2(2) = {'You can specify how the string is aligned'}; str2(3) = {'You can use LaTeX symbols like \pi \chi \Xi'}; str2(4) = {'\bfOr use bold \rm\itor italic font\rm'};

str2(5) = {'\fontname{courier}Or even change fonts'};

plot(0:6,sin(0:6))

uicontrol('Style','text','Position',[80 80 250 65],

'String',str1);

text(5.75,sin(2.5),str2,'HorizontalAlignment','right')

Kết quả nhận đợc nh sau:

4 Sử dụng các biến trong chuỗi văn bản

Tất cả các biến có dữ liệu dạng chuỗi đều có thể sử dụng thay cho chuỗi 'string' trong các câu lệnh Ví dụ nh chúng ta có dữ liệu ở dạng véc tơ cột các chuỗi văn bản sau:

PersonalData = ['Jack Straw ';'489 Main St.';'Wichita KN '];

Để hiển thị các dữ liệu này trên màn hình đồ hoạ ta thực hiện các câu lệnh:

text(x1,y1,['Name: ',PersonalData(1,:)])

text(x2,y2,['Address: ',PersonalData(2,:)])

text(x3,y3,['City and State: ',PersonalData(3,:)])

Nếu biến chứa dữ liệu số, ta phải chuyển nó thành dữ liệu chuỗi ví dụ:

x = 21;

Trang 5

text(xcoord,ycoord, ['Today is the ',num2str(x),'st day.']) sẽ in ra tại toạ độ (xcoord,ycoord) dòng

chữ : 'Today is the 21st day.'

5 Quy định các thuộc tính của văn bản đồ hoạ

Để quy định vị trí, cách căn chỉnh, kích cỡ và kiểu font chữ của văn bản đồ hoạ đa ra bởi các lệnh xlabel, ylabel, zlabel, text, title , chúng ta có thể gán thuộc tính cho các dòng văn bản đó ở dạng :

<câu lệnh>( , 'Property Name',<property value> ).

ở đây:

 <câu lệnh> là các câu lệnh viết chữ của Matlab (xlabel, text, title )

 'Property Name' là tên thuộc tính (cần đặt bên trong dấu ' ')

 <property value> là giá trị của thuộc tính có thể là chuỗi hoặc số nguyên, số thực 4.1 Các thuộc tính của văn bản

' FontName' Cho phép quy định kiểu font chữ Tên font chữ (dạng chuỗi)

'Position' Quy định vị trí đặt chuỗi văn bản toạ độ x và y (z) của điểm:

[ x y (z)]

'Rotation' Góc xoay của dòng văn bản Số thực chỉ góc tính bằng độ 'VerticalAlignment' Quy định kiểu căn chỉnh theo

ph-ơng thẳng đứng 'Top', 'Bottom', 'Middle' 'HorizontalAlignment' Quy định kiểu căn chỉnh theo

ph-ơng ngang

'Left', 'Center', 'Right'

4.2 Xuất các ký tự đặc biệt

Trong các chuỗi của đối số của các hàm viết chữ trong chế độ đồ hoạ ta có thể đa vào các ký tự

điều khiển để xuất ra các chữ cái hy lạp, ký hiệu toán học, và kiểu font Các mã điều khiển đ ợc

đặt sau dấu '\' ví dụ:

Bảng các ký tự điều khiển dùng để xuất chữ cái hy lạp và biểu tợng

Chuỗi ký tự

điều khiển Biểu t- ợng Chuỗi ký tự điều khiển Biểu t- ợng Chuỗi ký tự điều khiển Biểu t- ợng

Trang 6

\otimes \oplus \oslash

Chúng ta có thể điều khiển trực tiếp kiểu font chữ bằng các ký tự điều khiển: \fontname Trong trờng hợp này tên font chữ sẽ phải đặt trong dấu {} kế tiếp phần điều khiển font chữ, chúng ta có thể thêm các mã điều khiển:

\bf - kiểu chữ đậm

\it - kiểu chữ nghiêng

\sl - oblique font

\rm - kiểu chữ bình thờng

\fontsize{fontsize} - Định nghĩa cỡ chữ

Các chỉ số trên và dới đợc định nghĩa bằng các ký tự điều khiển "_" và "^"

5 các thí dụ

Để hiển thị ngày hiện thời trên tiêu đề của đồ thị ta dùng hàm:

title(date)

Để đa vào các chuỗi số ta dùng các lệnh sau:

f = 70;

c = (f 32)/1.8;

title(['Temperature is ',num2str(c),'C'])

Include a variable's value in a title and set the color of the title to yellow:

n = 3;

title(['Case number #',int2str(n)],'Color','y')

Include Greek symbols in a title:

title('\ite^{\omega\tau} = cos(\omega\tau) + isin(\omega\tau)')

Include a superscript character in a title:

title('\alpha^2')

Include a subscript character in a title:

title('X_1')

Ví dụ : đa vào các chuỗi ký tự đặc biệt

t = -pi:pi/100:pi;

y = sin(t);

plot(t,y)

axis([-pi pi -1 1])

xlabel('-\pi \leq \itt \leq \pi')

ylabel('sin(t)')

title('Graph of the sine function')

text(0.5,-1/3,'\it{Note the odd symmetry.}')

Đa ra đồ thị nh hình vẽ:

Trang 7

6 Các tuỳ chọn của lệnh plot

Trong lệnh plot ta có thể đa vào các tuỳ chọn ở dạng:

plot( ,'PropertyName',PropertyValue, )

Trong đó 'PropertyName' là tên các thuộc tính,

PropertyValue là giá trị của thuộc tính mà ta muốn gán:

Dới đây là bảng liệt kê các thuộc tính của đồ thị:

'LineWidth' điều khiển bề dầy của nét vẽ đồ thị số nguyên

'MarkerEdgeColor' Điều khiển màu của nét vẽ biểu tợng đánh

dấu điểm các ký tự chỉ màu vídụ:'g','y' 'MarkerSize' Kích thớc của biểu tợng đánh dấu điểm số nguyên

'MarkerFaceColor' Điều khiển màu của biểu tợng đánh dấu

điểm các ký tự chỉ màu vídụ:'g','y'

Ví dụ:

plot(x,sin(2*x),'-mo',

'LineWidth',2,

'MarkerEdgeColor','k',

'MarkerFaceColor','r',

'MarkerSize',12)

7 Các lệnh viết chữ khác

7.1 Lệnh gtext

Cú pháp:

gtext('string')

h = gtext('string')

Mô tả

gtext sẽ hiển thị chuỗi văn bản tại vị trí chỉ định bằng chuột trên đồ thị

7.2: lệnh ginput

Nhập dữ liệu của các điểm bằng chuột

Cú pháp

[x,y] = ginput(n)

[x,y] = ginput

Description

x,y] = ginput(n) Cho phép bạn chọn n điểm bằng chuột và trả kết quả là toạ độ x và y của các điểm chọn cho các véc tơ x và y Bnj có thể kết thúc việc chọn điểm ngay cả khi cha nhập

đủ n điểm bằng cách ấn Enter

Trang 8

x,y] = ginput Cho phép chọn số điểm không hạn chế.

IV Các đồ thị dạng lới và bề mặt

1 Các hàm tạo bề mặt

Matlab định nghĩa một bề mặt lới bởi các toạ độ Z trên lới của mặt xy Dùng các đờng thẳng để nối các điểm kề nhau Hàm mesh và surf hiển thị các bề mặt ở dạng 3 chiều Mesh cung cấp các bề mặt dạng khung dây trong đó chỉ thể hiện màu ở các đờng nối Surf hiển thị màu cả đ-ờng nối và bề mặt

2 Trực quan hoá các hàm hai biến

Để hiển thị hàm 2 biến z=f(x,y), hãy tạo các ma trận x và y chứa đựng các hàng và cột lặp Sau

đó sử dụng các ma trận này để tính ra đồ thị của hàm

Hàm meshgrid chuyển phạm vi đợc định nghĩa bằng một véc tơ hoặc hai véc tơ x, y thành các

ma trận X, Y dùng để tính ra giá trị của hàm Các hàng của X là các bản sao của véc tơ x, các cột của Y là copy của véc tơ y

Cú pháp:

[X,Y] = meshgrid(x,y)

[X,Y] = meshgrid(x)

[X,Y,Z] = meshgrid(x,y,z)

Thí dụ:

Hàm

[X,Y] = meshgrid(1:3,10:14)

Tạo hai mảng x và y sau

X =

1 2 3

1 2 3

1 2 3

1 2 3

1 2 3

Y =

10 10 10

11 11 11

12 12 12

13 13 13

14 14 14

Hàm Mesh

Cú pháp

mesh(X,Y,Z)

Ví dụ:

[X,Y] = meshgrid(-8:.5:8);

R = sqrt(X.^2 + Y.^2) + eps;

Z = sin(R)./R;

mesh(X,Y,Z)

Cho ra đồ thị nh hình vẽ

Trang 9

Trong đó R là khoảng cách từ tâm, eps dùng để tránh việc chia cho 0 ở điểm 0,0

V in ấn đồ thị

Tuỳ chọn Print của mênu FILE và lệnh print đều dùng để in đồ thị Tuỳ chọn Print sẽ gọi ra hộp thoại cho phép ngời dùng chọn các tuỳ chọn về in ấn giống nh ở cacs phần mềm khác, còn lệnh print cung cấp chúng ta các khả năng mềm dẻo hơn và cho phép điều khiển việc in đồ thị từ m file Kết quả có thể gửi trực tiếp ra máy in hoặc đợc xếp xắp trong một tệp xác định Các định dạng đầu ra hết sức khác nhau đợc cung cấp ở đây (kể cả PostScript)

Thí dụ: câu lệnh sau đây ghi hình ảnh của màn hình đồ hoạ ra tệp Postscript cấp 2 có tên là magicsquare.eps:

print -depsc2 magicsquare.eps

Một điều hết sức quan trọng là cần phải biết trớc khả năng của máy in trớc khi dùng lệnh print

Ví dụ nh tệp Postscript cấp 2 thờng là gọn hơn và tô bóng nhanh hơn khi in so với tệp Postscript cấp 1 Tuy nhiên không phải tất cả các máy in đều có khả năng làm việc với tệp Postscript cấp 2

Ngày đăng: 11/01/2017, 15:29

TỪ KHÓA LIÊN QUAN

w