Works thiết kế. Mặc dù được phát triển như một ngôn ngữ lập trình toán học giúp người sử dụng tiếp cận với đại số cao cấp và xử lý hình ảnh, MATLAB cũng được đông đảo các nhà khoa học, kĩ sư và lập trình viên trong lĩnh vực xử lý hình ảnh và ứng dụng trí tuệ nhân tạo sử dụng. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác.MATLAB được sử dụng trong nhiều nghành nghề , nhiều lĩnh vực khác nhau , chính vì vậy mà các hàm trong MATLAB cũng rất nhiêu . Sau đây mình sẽ giới thiệu một vài hàm về đồ thị đơn giản và thông dụng trong MATLAB
1 ) Hàm Plot - Vẽ các điểm và đường trong mặt phẳng(2D)
Phần lớn các câu lệnh để vẽ đồ thị trong mặt phẳng đều là lệnh plot. Lệnh plot vẽ đồ thị của một mảng dữ liệu trong một hệ trục thích hợp và nối các điểm bằng đường thẳng.
Bạn đang xem: Vẽ nhiều đồ thị trong matlab
x=linspace(0,2*pi,30); // Hàm linspace là lấy 30 điểm cách đều nhau trong khoảng từ 0 -> 2piy=sin(x);plot(x,y);
Đồ thị nhận được được hiển thi trên cửa sổ figure
z=cos(x);plot(x,y,x,z);
Nếu thay đổi trật tự các đối số đồ thị sẽ xoay một góc 90plot(y,x,z,x);**
MATLAB mặc định đường vẽ là đường liền, không đánh dấu, màu xanh da trời.Ta có thể thay đổi kiểu đường vẽ và đánh dấu lên đồ thị bằng cách đưa vào một đối số thứ ba. Các đối số tùy chọn này là một xâu kí tự, có thể chứa một hoặc nhiều hơn theo bảng dưới đây.
b | xanh da trời | . | chấm | - | nét liền |
g | xanh lá cây | o | vòng tròn | : | nét chấm |
r | đỏ | x | dấu x | -. | nét gạch - chấm |
c | xanh da trời nhạt | + | dấu + | -- | nét đứt |
m | đỏ tím | * | dấu hoa thị | - | nét liền |
y | vàng | s | hình vuông | ||
k | đen | d | hình thoi | ||
w | trắng | ^ | tam giác hướng xuống | ||
v | tam giác hướng lên | ||||
tam giác hướng trái | |||||
vp | sao năm cánh | ||||
h | sao sáu cánh |
plot(x,y,"m*",x,y,"b--")

plot(x,y,"p-","linewidth",4,"markersize",6)
Lệnh grid on sẽ thêm đường lưới vào đồ thị hiện tại. Lệnh grid off xóa bỏ các nét này.Ta có thể đưa tên trục x, y và tên của đồ thị vào hình vẽ nhờ các lệnh xlabel và ylabel. Lệnh title sẽ thêm vào đồ thị tiêu đề ở đỉnh.Dòng ghi chú được đưa vào đồ thị nhờ hàm legend. Trong legend thì màu và kiểu của mỗi loại đường phù hợp với các đường đó trên đồ thị.
Ví dụ:x=linspace(0,2*pi,30);y=sin(x);z=cos(x); plot(x,y,"mx-",x,z,"bp--")grid onxlabel("x")ylabel("y")title("do thi ham sin va cos")legend ("y = sinx","z =cosx")

x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y);
Hình vẽ sẽ hiện ra trên cửa sổ figurehold onplot(x,z,"m")
Sẽ vẽ thêm 1 đồ thị khác vào cùng cửa sổ figurehold off
Lệnh subplot(m,n,p) chia cửa sổ hiện tại thành một ma trận m x n khoảng để vẽ đồ thị, và chọn p là cửa sổ hoạt động. Các đồ thị thành phần được đánh số từ trái qua phải, từ trên xuống dưới, sau đó đến hàng thứ haiVí dụ:
subplot(2,2,1)plot(x,y)subplot(2,2,2)plot(y,x)subplot(2,2,3)plot(x,z)subplot(2,2,4)plot(z,x)

2) Hàm plot3 - Vẽ điểm và đường trong không gian
Hàm plot3 cho phép vẽ các điểm và đường trong không gian. Ngoài việc có thêm trục z, cách sử dụng hàm này giống như cách sử dụng hàm plot.View(): a là góc phương vị tính bằng độ ngược chiều kim đồng hồ từ phía âm của trục y. Giá trị mặc định của a là -37.5 độ. b là góc nhìn tính bằng độ xuống mặt phẳng x, y. Giá trị mặc định của b là 30 độ. Khi thay đổi các giá trị a và b sẽ nhìn được hình vẽ dưới các góc độ khác nhau.
Ví dụ :t=linspace(0,10*pi);subplot(1,2,1);plot3(sin(t),cos(t),t);xlabel("sint");ylabel("cost");title("helix");subplot(1,2,2);plot3(sin(t),cos(t),t);view(<10,35>);xlabel("sint");ylabel("cost");title("helix")

3) Các hàm vẽ loglog, semilogx và semilogy vẽ các đường trong mặt phẳng
loglog: tương tự như plot nhưng thang chia là logarithm cho cả hai trục.semilogx: tương tự như plot nhưng thang chia của trục x là logarithm còn thang chia trục y là tuyến tính.semilogy: tương tự như plot nhưng thang chia của trục y là logarithm còn thang chia của trục x là tuyến tính.

4) Pie Chart
Ðể vẽ đồ thị bánh trong mặt phẳng ta dùng hàm pie, còn muốn vẽ trong không gian, ta dùng hàm pie3. Với cú pháp pie(V) .Trong đó V là vectơ chứa các phần tử được thể hiện trên đồ thị bánh.Thứ tự phân chia trên đồ thị bánh ngược chiều kim đồng hồ
Muốn tách phần chia nào đó ra khỏi đồ thị thì ta thêm vào hàm pie một vectơ nữa có cùng kích thước với vectơ được mô tả ở trên. Phần tử của vectơ này tương ứng với phần cần tách ra khỏi đồ thị thì ta cho giá trị khác 0, phần tử tương ứng với phần không tách ra ta cho giá trị bằng 0.
subplot(2,1,1)pie(<5 12 15 20>)subplot(2,1,2)pie(<5 12 15 20>,<0 0 0 1>)pie(<5 12 15 20>,{"xuong A","xuong B","xuong C","xuong D"})

5) Đồ thị cột - Bar chart
Hàm bar và bar3 cho phép vẽ đồ thị trong mặt phẳng và trong không gian.Hàm barh và hàm barh3 cho phép vẽ đồ thị cột nằm ngang trong mặt phẳng và trong không gian.
Cú pháp : bar(Vx, Vy, kích thước)Ví dụ: Vẽ đồ thị cột với các số liệu:| X | Y || -------- | -------- || 2 | 7.5 || 3 | 5.2 || 4 | 3 |bar(<2 3 4>,<7.5 5.2 3>,0.4)

Nếu ta không đưa vào các giá trị của X, nghĩa là trong hàm bar vừa sử dụng ta bỏ <2 3 4>, thì MATLAB sẽ mặc định các giá trị của X là <1 2 3>. Trong trường hợp Vy là ma trận thì số nhóm cột chính bằng kích thước của vectơ Vx.
Ví dụ: thể hiện đồ thị cột với các số liệu sau:| X | Y || -------- | -------- || 1 | 7.5 || | 6 || | 4 || 3 | 5.2 || | 3 || | 5 |bar(<1 3>,<7.5 6 4;5.2 3 5>,0.4)

6)Vẽ các mặt từ một ma trận bằng các lệnh mesh, meshz, meshc,waterfall
MATLAB định nghĩa bề mặt lưới bằng các điểm theo hướng trục z ở trên đường kẻ ô hình vuông trên mặt phẳng x - y. Nó tạo lên mẫu một đồ thị bằng cách ghép các điểm gần kề với các đường thẳng. Kết quả là nó trông như một mạng lưới đánh cá với các mắc lưới là các điểm dữ liệu. Đồ thị lưới này thường được sử dụng để quan sát những ma trận lớn hoặc vẽ những hàm có hai biến.Bước đầu tiên là đưa ra đồ thị lưới của hàm hai biến z = f(x,y), tương ứng với ma trận X và Y chứa các hàng và các cột lặp đi lặp lại, MATLAB cung cấp hàm meshgrid cho mục đích này:
Xem thêm: Hướng dẫn lắp mạch khuếch đại âm thanh dùng ic tda2003 ic khuếch đại âm thanh
meshz (X,Y,Z): vẽ các đường thẳng đứng viền quanh đồ thị.waterfall X,Y,Z): vẽ mặt với hiệu ứng như thác đổ.Ví dụ: Vẽ mặt xác định bởi phương trình: z(x, y)xe^(-x^2) ^(-y^2)
x=-2:0.5:2;y=-2:1:2;


Lệnh surfc (X,Y,Z): vẽ mặt có các đườn contour phía dưới.Lệnh surfl (X,Y,Z,s): vẽ mặt có bóng sáng. Đối số s xác định hướng của nguồn sáng trên bề mặt vẽ. s là một vectơ tuỳ chọn trong hệ toạ độ decac hay trong toạ độ cầu. Nếu không khai báo giá trị mặc định của s là 45o theo chiều kim đồng hồ từ vị trí người quan sát.Khi vẽ đồ thị ta có thể thay đổi một số đặc điểm của đồ thị như tỉ lệ trên các trục, giá trị giới hạn của các trục, màu và kiểu đường cong đồ thị, hiển thị legend…ngay trên figure bằng cách vào menu tools rồi vào mục axes properties, line properties hay show legend…Ví dụ
x=-2:0.5:2;y=-2:1:2;
x=-2:0.2:2;y=-2:0.4:2;
x = 0:0.05:(20-4);%Tao mang x voi cac phan tu tu 0 den 16 %moi phan tu cach nhau 0.05y = cos(x)-2*sin(x);%Tao mang yplot(x,y,"bo:","Line
Width",3,"Marker
Size",5) %Ve do thi tu cac gia tri trong mang x va y, nét vẽ: width 3, danh dau hinh tron size 5, mau xanh lam title("Do thi hinh sin"); %ten do thixlabel("Thoi gian"); %chu thich truc xylabel("Gia tri"); %chu thich truc ygrid on %bat luoi

x = 0:pi/100:(4+1)*pi;%Tao mang x voi cac phan tu tu 0 den 5*pi %moi phan tu cach nhau pi*100y = sin(x);%Tao mang yz=cos(x);%Tao mang zplot(x,z,"y",x,y,"g","Line
Style","-.","Line
Width",3)%Ve do thi tu cac gia tri trong mang x va z voi mau vang va % do thi tu cac gia tri trong mang x va y voi mau xanh la trong cung 1 cua so % net -. do rong 3grid %thay doi trang thai luoixlabel("X"),ylabel("Y") %chu thich truc x, ytitle("Graph sin(x) and cos(x)") %ten do thiaxis(<0 20 -1.2 1.2>); %tao truc toa do hien thi

1.3. Ví dụ 3: Vẽ 3 đồ thị trong 1 trục tọa độ
x = 1:0.5:20-4;%Tao mang x voi cac phan tu tu 1 den 16 %moi phan tu cach nhau 0.5y1 = sin(x)+cos(x);%Tao mang y1y2 = sin(x)-2*cos(x);%tao mang y2y3 = sin(x)+2*cos(x);%tao mang y3plot(x,y1,"r+:",x,y2,"g*-",x,y3,"yo-") %Ve do thi tu cac gia tri trong mang x va y1 voi mau do, net ve :, danh dau + va %Ve do thi tu cac gia tri trong mang x va y2 voi mau xanh la, net ve -, danh dau * va % Ve do thi tu cac gia tri trong mang x va y3 voi mau vang, net ve -, danh dau o%Trong cung 1 cua sogrid on %bat luoi

clear all %xoa bienx=0:0.01:(4+1)*pi;%Tao mang x voi cac phan tu tu 0 den 5*pi %moi phan tu cach nhau 0.01 y1=sin(x); %Tao mang y1 y2=cos(x);%Tao mang y2y3=sin(x)+cos(x);%Tao mang y3 subplot(3,1,1)%chia cua so thanh ma tran 3 x 1 khoang de ve do thi, va chon cua so 1 de veplot(x,y3,"g") %Ve do thi tu cac gia tri trong mang x va y3, net ve mau xanh lagrid on; %Bat luoi subplot(3,1,2)%chia cua so thanh ma tran 3 x 1 khoang de ve do thi, va chon cua so 2 de veplot(x,y2,"y") %Ve do thi tu cac gia tri trong mang x va y2, net ve mau vanggrid on; %Bat luoi subplot(3,1,3)%chia cua so thanh ma tran 3 x 1 khoang de ve do thi, va chon cua so 3 de veplot(x,y1,"b") %Ve do thi tu cac gia tri trong mang x va y1, net ve mau xanh lamgrid on; %Bat luoi

x=0:0.01:(4+1)*pi;%Tao mang x voi cac phan tu tu 0 den 5*pi %moi phan tu cach nhau 0.01 y1=sin(x); %Tao mang y1 y2=cos(x);%Tao mang y2y3=tan(x);%Tao mang y3y4=sin(x).*sin(x); subplot(2,2,1)%chia cua so thanh ma tran 2 x 2 khoang de ve do thi, va chon cua so 1 de veplot(x,y1,"b+:","Line
Width",2,"Marker
Size",5) %Ve do thi tu cac gia tri trong mang x va y1, net ve : do rong 2, danh dau + size 5, mau xanh lamgrid on; %Bat luoi subplot(2,2,2)%chia cua so thanh ma tran 2 x 2 khoang de ve do thi, va chon cua so 2 de veplot(x,y2,"r+:","Line
Width",2,"Marker
Size",5) %Ve do thi tu cac gia tri trong mang x va y2, net ve : do rong 2, danh dau + size 5, mau dogrid on; %Bat luoi subplot(2,2,3)%chia cua so thanh ma tran 2 x 2 khoang de ve do thi, va chon cua so 3 de veplot(x,y3,"g+:","Line
Width",2,"Marker
Size",2) %Ve do thi tu cac gia tri trong mang x va y3, net ve : do rong 2, danh dau + size 2, mau xanh lagrid on; %Bat luoi subplot(2,2,4)%chia cua so thanh ma tran 2 x 2 khoang de ve do thi, va chon cua so 4 de veplot(x,y4,"y+:","Line
Width",2,"Marker
Size",5) %Ve do thi tu cac gia tri trong mang x va y4, net ve : do rong 2, danh dau + size 5, mau vanggrid on; %Bat luoi

x = 1:12; %Tao mang x voi cac phan tu tu 1 den 12y=<8 1 1 5 0 5 5 2 0 2 2 4>; %Tao mang ybar(x,y,0.5,"r");% ve do thi thanh tu gia tri x y, mau do, do rong 0. بينجو اون لاين 5grid %thay doi trang thai luoixlabel("Thang") %Chu thich truc xylabel("Ma so") %chu thich truc ytitle("Nguyen Van Khuong") %ten do thi

%pie plotx=<1 8 1 1 5 0 5 5 2 0 2 2 4>; %Tao mang xtach = <0 0 0 0 0 0 0 0 0 0 0 1 1> %Tao mang tach de cat do thi tron%o cac vi tri tuong ung voi so 1, la 2 vi tri cuoi trong mang x pie(x,tach) %Ve do thi tron voi cac vi tri cat trong mang tach

%polar plott = 0:0.01:(4+1)*pi;%Tao mang t voi cac phan tu tu 0 den 5*pi %moi phan tu cach nhau 0.01polar(t,abs(sin((4+1)*t).*cos((4+1)*t))) %Ve do thi toa do cuc tu gia tri t va ham abs(sin((4+1)*t).*cos((4+1)*t))

4. Đồ thị 3D
4.1. Đồ thị đường 3D
z = 0:pi/50:(4+1)*pi;%Tao mang z voi cac phan tu tu 0 den 5*pi %moi phan tu cach nhau pi/50x=sin(z); %Tao mang xy=cos(z); %Tao mang yplot3(x,y,z,"Line
Width",5,"Line
Style","-","Color","b") %Ve do thi 3d tu cac gia tri trong mang x,y,z, net ve - do rong 5, mau xanh lamgrid; %thay doi trang thai luoi

x = -1:0.05:1;%Tao mang x voi cac phan tu tu -1 den 1 %moi phan tu cach nhau 0.05y=x; %Tao mang y
Color","b") %Tao be mat 3 chieu co duong contour ben duoi
Color","r"),title("Ham surf"); %Tao be mat 3 chieu va ten do thicolormap hot %chon kieu to mau cho do thishading interp %tao bong cho be mat subplot(2,2,2);%chia cua so thanh ma tran 2 x 2 khoang de ve do thi, va chon cua so 2 de vemesh(x,y,z,"Edge
Color","b"),title("Ham mesh"); %Ve mat luoi 3d va them ten do thisubplot(2,2,3);%chia cua so thanh ma tran 2 x 2 khoang de ve do thi, va chon cua so 3 de vesurfc(x,y,z,"Edge
Color","y"),title("Ham surf");%Tao be mat 3 chieu co duong contour va ten do thishading flat %Tao bong be mat kieu flatsubplot(2,2,4);%chia cua so thanh ma tran 2 x 2 khoang de ve do thi, va chon cua so 4 de vemesh(x,y,z,"Edge
Color","c"),title("Ham mesh");%Ve mat luoi 3d va them ten do thishading flat %Tao bong be mat kieu flat
%ve hinh cau tam (x=2, y=2, z=4) 3so cuoi msv
subplot(1,2,1) %chia cua so thanh ma tran 1 x 2 khoang de ve do thi, va chon cua so 1 de vecylinder(<1 8 1 1 5 1 5>) %Ve hinh trusubplot(1,2,2) %chia cua so thanh ma tran 1 x 2 khoang de ve do thi, va chon cua so 2 de vecylinder(<5 2 1 2 2 4>) %Ve hinh tru
