You are on page 1of 14

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN – ĐHQG TP.

HCM
Khoa Điện Tử Viễn Thông

Phương pháp tính và Matlab


Tuần 4

GIẢNG VIÊN : HUỲNH QUỐC THỊNH

1
NHÓM 19

1. Nguyễn Đức Hiếu 1620081


2. Nguyễn Thị Mỹ Phước 1720178
3. Trần Thị Kim Quyên 1720193
4. Nguyễn Huy Thành 1720221
5. Nguyễn Võ Lam Tuyền 1720258
CONENTS:

 Giới thiệu về đồ thị 2D, 3D


 Giới thiệu input/output và file IO
 Ví dụ
I. GIỚI THIỆU VỀ ĐỒ THỊ 2D & 3D
1) Đồ thị 2D:
o Lệnh plot:
plot(y) y là một ma trận các số thực hoặc phức. Các vector của y sẽ được
biểu diễn bằng các đường thẳng trong hệ tọa độ.
plot(x,y…) x,y là các ma trận có kích thước tương đương hang hoặc vột với nhau.
plot(x,y,linespec...) linespec là các thuộc tính về đường: line style,
line width, color, marker type, marker size, marker face and edge coloring.
plot (x, f(x))
f(x): hàm số cần vẽ
x : vecto miền giá trị của hàm f
Vd: Vẽ đồ thị của hàm y = sin(x)
x = 0:pi/100:2*pi
y = sin(x)
plot (x,y)
o Các tham số plot(x, y, ‘linestlye_maker_color’)
Ví dụ:
x = 0:pi/20:2*pi;
plot(x, sin(x),’-.*r’);
hold on
plot(x, sin(x – pi/2),’--om’);
plot(x, sin(x – pi), ‘:bs’);
hold off

o Tùy chỉnh màu sắc và độ lớn nét vẽ:


• LineWidth: độ rộng của nét vẽ, tính bằng pt
• MarkeEdgecolor: màu của đường viền marker
• MakerFacecolor: màu bên trong marker
• Markersize: độ lớn của marker, tính bằng pt
o Vẽ thêm đồ thị trên đồ thị hiện có:
Dùng lệnh hold on, lệnh hold off để tắt.
o Xác định tọa độ:
• Lệnh axis: axis([xmin xmax ymin ymax])
• Tùy chỉnh các kiểu tọa độ:
• axis on/off/auto
• axis normal/square/equal/tight
• axis ij/xy
• grid on/off

• Xác định giới hạn của trục Ox và Oy:


• xlim([xmin xmax])
• ylim([ymin ymax])
• Chú thích trên đồ thị:
• xlabel, ylabel
• title
• Legend
• text, gtext
o Vẽ đồ thị trên 2 trục tọa độ khác nhau
plotyy
Vd : t=0:900; A=1000;
a=0.005; b=0.005;
Y1=A*exp(-a*t);
Y2=sin(b*t);
plotyy(t,y1,t,y2,...
'semilogy','plot')

o Vẽ nhiều đồ thị trong cùng một cửa sổ


subplot
2) Đồ thị 3D: plot3(x,y,z)
o Xác định các vecto x, y, z:
meshgrid(x,y) tạo ra mảng X, Y từ miền giá trị của x, y.
2 −𝑥 2 −𝑦 2
Vd: Vẽ mặt 𝑥 𝑦𝑒 với −4 ≤ 𝑥 ≤ 4 𝑣à − 4 ≤ 𝑦 ≤ 4

[x, y] = meshgrid([-4:0.1:4]);
z=x.*x.*y.*exp(-x.^2-y.^2);
plot3(x, y, z)
mesh(z)
o Một số lệnh vẽ đồ thị trong 3D:
• plot3
• contour/ contour/contour3
• mesh/meshc/meshz
• surf/surfc
• waterfall
• bar3/bar3h
• pie3/fill3
• comet3/scatter3/stem3
o In và xuất đồ thị:
• Dùng lệnh:
print -dtiff -r200 mygraph.tiff
print -deps2 mygraph.eps
• Sử dụng Plotting Tools
II. INPUT VÀ OUTPUT & FILE I/O
1) Input
Lệnh Input: Cho phép ta nhập dữ liệu từ bàn phím, dùng để nhập vào 1 giá trị.
Cú pháp:
tên biến = input (‘promt’) tên biến: là nơi lưu giá trị nhập vào.
tên biến = input (‘promt’, ‘s’) ‘promt’ :chuỗi ký tự muốn nhập vào.
Ví dụ1: ‘s’: cho biết giá trị nhập vào là nhiều ký tự.
x = input(‘nhập giá trị của biến x: ’) //Command Window sẽ hiện ra lời nhắc
nhập giá trị của biến x // Khi người dùng nhập dữ liệu từ bàn phim thì nó sẽ được lưu vào biến x
Ví dụ2:
trả_lời = input(‘bạn có muốn tiếp tục không ? ’,’s’)
bạn có muốn tiếp tục không ? ⇒ không
trả_lời = không
2) Output
o Xuất một chuỗi kí tự ra màn hình:
disp(‘chuỗi kí tự’)
Ví dụ:
>>disp(‘Xuất ra màn hình abcxyz’) //Sau lệnh này Command Window sẽ hiện lên
Xuất ra màn hình abcxyz
3) File I/O cấp thấp
• Hàm importdata là hàm nhập dữ liệu trong MATLAB cấp cao.
• Các hàm file I/O cấp thấp trong MATLAB cho phép kiểm soát các chức năng đọc và ghi dữ
liệu vào file nhiều nhất. Tuy nhiên các hàm này cần các thông tin chi tiết về file của bạn để
hoạt động hiệu quả
• Nhập File Dữ Liệu Văn Bản Với I/O Cấp Thấp
MATLAB cung cấp các hàm dưới đây để nhập các file dữ liệu văn bản cấp thấp:
• Hàm fscanf đọc định dạng dữ liệu trong file văn bản hoặc file ASCII.
• Các hàm fgetl và fgets đọc 1 dòng của file tại 1 thời điểm, nơi mà một ký tự dòng mới
phân cách mỗi dòng.
• Hàm fread đọc luồng dữ liệu ở mức độ byte hoặc bit.
• Nhập dữ liệu vào file và hiển thị dữ liệu:
• Mở file bằng hàm fopen và lấy định danh file.
• Mô tả dữ liệu trong file bằng biến như "%" cho chuỗi, "%d" cho số nguyên, hoặc "% f"
cho số thực dấu phẩy động (floating-point number).
Để bỏ qua các ký tự chữ trong file, thêm các ký tự này trong mô tả định dạng. Để bỏ qua
trường dữ liệu, sử dụng dấu hoa thị (*) trong biến.
Ví dụ, để đọc tiêu đề và trả về giá trị duy nhất cho M, bạn viết:
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);
• Mặc định fscanf đọc dữ liệu theo mô tả định dạng cho đến khi hàm không tìm thấy bất kỳ
đối sánh nào cho dữ liệu hoặc đến cuối file. Trong ví dụ này sẽ sư dụng vòng lặp để đọc 3
bộ dữ liệu và mỗi lần nó sẽ đọc 7 hàng và 5 cột.
• Tạo một cấu trúc có tên là mydata trong không gian để lưu dữ liệu đọc từ file. Cấu trúc này
gồm 3 trường: thời gian, tháng và mảng raindata.

You might also like