Tài liệu Tự học Matlab - Chương 1: Cơ sở Matlab
Matlab lμ một hệ thống tương giao,các phần tử dữ liệu lμ một mảng( mảng nμy
không đòi hỏi về kích thước ). Chúng cho phép giải quyết các vấn đề liên quan đến lập
trình bằng máy tính,đặc biệt sử dụng các phép tính về ma trận hay véc tor vμ có thể sử
dụng ngôn ngữ C học Fortran lập trình rồi thực hiện ứng dụng lập trình đó bằng các câu
lệnh goị từ MATLAB .MATLAB được viết tắt từ chữ matrix laboratory tức lμ
thư viện về ma trận, từ đó phần mềm MATLAB được viết nhằm cung cấp cho việc truy
cập vμo phần mềm ma trận một cáh dễ dμng, phần mềm ma trận nμy được phát triển bởi
các công trình Linpack vμ Eispack . Ngμy nay MATLAB được phát triển bởi
Lapack vμ Artpack tạo nên một nghệ thuật phần mềm cho ma trận.
các thuộc tính về đ−ờng
Matlab cho phép bạn sử dụng một số ký tự sau đây để xác định thuộc tính của đ−ờng
• Line style
• Line width
• Color
• Marker type
• Marker size
• Marker face and edge coloring (for filled markers)
Trang 2
Ma b ker types vμ colors
tyle
tla định nghĩa các chuỗi xác định cho kiểu đ−ờng, Mar
1. Line Style Specifiers
Specifier Line S
- −ờng liền(default)
đ
--
đ−ờng nét đứt
:
dotted line
-. ash-dot line
d
2. Marker Specifiers
rker Type Specifier Ma
+ lus sign
p
O ircle
C
* sterisk
A
.
Point
X ross
C
S quare
S
D iamond
D
^ pward pointing triangle
u
V ownward pointing triangle
d
> ght pointing triangle ri
Trang 3
< ft pointing triangle
le
P ve-pointed star (pentagram)
fi
H ix-pointed star (hexagram)
s
3. Color Specifiers
olor
Specifier C
R ed
R
G reen
G
B lue
B
C yan
C
M agenta
M
Y ellow
Y
K lack
B
W hite
W
Các lệnh plot chấp nhận một thông số Linespec ,thông số nμy định nghĩa ba phần tử ,các
g)
nh dấu)
Chú ý rằng khi kết hợp chúng ta có thể để theo một thứ tự bất kỳ
or')
phần tử nμy xác định đ−ờng
• Line style (kiểu đ−ờn
• Marker symbol (Kiểu đá
• Color (kiểu mầu)
For example
plot(x,y,'-.
Trang 4
Vẽ y theo x sử dụng kiểu đ−ờng lμ dash-dot đặt vòng tròn(o) tại các giao điểm (x,y) ,vμ
mầu của đ−ờng vμ mầu của vòng tròn đánh dấu lμ mầu đỏ
Nếu bạn xác định một điểm đánh dấu, không phải lμ kiểu đ−ờng, Matlab chỉ vẽ các điểm
đánh dấu
I. Ví dụ
plot(x,y,'d')
4.1.2 Hμm plot(x,y, protypename,protypevalue....)
Hμm nμy xác định rõ các thuộc tính của đ−ờng thẳng ví dụ nh− Chiều rộng của đ−ờng
thẳng
LineStyle {-} | -- | : | -. | none
Độ rộng của đ−ờng(Linewith) mặc định lμ o.5 points( 1point=1/72 inch)
Ví dụ về Linepropertype:
plot(t,sin(2*t),'-mo',...
'LineWidth',2,...
'MarkerEdgeColor','b',...
'MarkerFaceColor',’r’,...
'MarkerSize',12)
Giải thích nh− sau:
Hμm trên vẽ đồ thị f=sin(2*t) theo biến t, đặc tính của đ−ờng lμ mầu (magne) ,giao
hai điểm lμ hình tròn(s), đ−ờng lμ liên tục(solid line)
Line width lμ 2(point) ( 1point=1/72 inches) default lμ 0.5 points
MarkerEdgeColor lμ mầu đen( blue)
Mỗu trong (mặt) của các điểm nút giao lμ mầu đỏ:
Chúng ta thấy rằng đồ thị đ−ợc xây dựng từ việc nối các điểm có toạ độ (x,y) bằng các
đoạn thẳng
*tỷ lệ các trục sẽ đ−ợc matlab tự động tạo ra sao cho phù hợp
4.1.3 Để vẽ nhiều đồ thị trên cùng một hình vẽ thì chúng ta có hai cách
+Vẽ đồ thị thứ nhất
+ Dùng lệnh Hold on
+Vẽ tiếp đồ thị thứ hai + hold off
hoặc Dùng hμm plot(x1,y1,x2,y2)
Ví dụ ta vẽ hai hμm y=sin(x) vμ y1=cos(x)
Ta dùng lệnh plot nh− sau:
plot(x,y,x,y1);
Trang 5
4.1.4 Title , xlabel, ylabel, gtext, legend, grid
Title dùng để viết tiêu đề cho đồ thị
Ví dụ Title(.............................)
Xlabel( string) đặt tên nhãn cho trục x
Ylabel(string) đặt tên nhãn cho trục y
Gtext(string) để viết text vμo đồ thị
Legend(string,-1) để ghi chú thích cho đồ thị, số -1 để ghi chú thích bên ngoμi các trục
của hình vẽ
Grid on hoặc Grid off để mở hoặc tắt Grid
t=0:pi/6:pi;
plot(t,sin(2*t),'-mo',...
'LineWidth',2,...
'MarkerEdgeColor','b',...
'MarkerFaceColor','r',...
'MarkerSize',14)
legend('y=sin(2*t)','y=cos(2*t)',-1);( chú ý viết đúng thứ tự)
grid on;
xlabel('truc thoi gian');
ylabel('truc Sin va cos');
title('Do thi ham sin(2*t)');
hold on;
j=cos(2*t);
plot(t,j,'-b+');
hold off;
4.2 Hμm plot3(x,y,z) để vẽ các điểm vμ đ−ờng trong không gian
Ngoμi việc thêm trục z các hμm nμy sử dụng giống nh− hμm plot(x,y)
Cấu trúc
plot3(X1,Y1,Z1,...)
plot3(X1,Y1,Z1,LineSpec,...)
plot3(...,'PropertyName',PropertyValue,...)
h = plot3(...)
Việc sử dụng các hμm nμy giống với hμm Plot trong 2D do vậy ta không đề cập tới nữa
Chú ý tới hμm View(a,b) để quan sát góc nhìn của đồ thị trong đó a lμ góc tính theo chiều
ng−ợc chiều kim đồng hồ từ phía âm của trục y còn 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 a vμ b lμ -37.5 0 vμ 30 0
%Ví dụ
Trang 6
%Plot a three-dimensional helix.
% Vẽ mặt phẳng x= sin(t) ,y=cos(t) , z=t
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
grid on;
axis square
view(-80,30);
xét hai tr−ờng hợp
view(-80,30);
view(-40,30);
Khi cho a=0 vμ b=90 thì hình vẽ
trở về hình vẽ trong mặt phẳng
toạ độ hai chiều
4.3 Hμm semilogx, semilogy
Semi-logarithmic plots
Cấu trúc
semilogx(Y)
semilogx(X1,Y1,...)
semilogx(X1,Y1,LineSpec,...)
semilogx(...,'PropertyName',PropertyValue,...)
h = semilogx(...)
semilogy(...)
h = semilogy(...)
Mô tả
Semilogx(y) vẽ giống nh− plot(y) nh−ng chỉ khác rằng tỷ lệ trên trục x lμ logarit cơ số 10,
t−ơng tự nh− vậy đối với Semilogy(y) thì tỷ lệ trên trục y theo logarit cơ số 10 ứng với
truc x.
X=0:10:1000;
Y=100*x;
Subplot(2,2,1);
Semilogx(x,y,'.');
Xlabel('log');
Ylabel('tuyen tinh');
subplot(2,2,2);
semilogy(x,y,'.');
xlabel('tuyen
tinh');
ylabel('log');
title('
subplot(2,2,3);
loglog(x,y,'.');
xlabel('log');
ylabel('log');
title('
loglog(x,y)');
grid on;
subplot(2,2,4
);
plot(x,y,'.');
xlabel('tuyen
tinh');
ylabel('tuyen
tinh'); Title(' semilogx(x,y)');
Grid on; title('
Trang 7
Trong không gian 3 chiều thì ta không dùng các hμm trên để vẽ ,mμ ta sử dụng hμm plot3
vμ dùng hμm set để đặt trục toạ độ
t=1:1:100;
x=sin(20*pi*t);
y=cos(20*pi*t);
z=t;
subplot(1,2,1);
plot3(x,y,z);
set(gca,'Zscale','log');grid on;view(125,7);
4.4 Vẽ trong hệ toạ độ cực
Cấu trúc
polar(theta,rho)
polar(theta,rho,LineSpec)
Mô tả
The polar function accepts polar coordinates, plots them in a Cartesian plane, and draws
the polar grid on the plane.
polar(theta,rho) creates a polar coordinate plot of the angle theta versus the radius rho.
theta is the angle from the x-axis to the radius vector specified in radians; rho is the
length of the radius vector specified in dataspace units.
polar(theta,rho,LineSpec) LineSpec specifies the line type, plot symbol, and color for the
lines drawn in the polar plot.
Examples
Create a simple polar plot using a dashed, red line:
t = 0:.01:2*pi;
polar(t,sin(2*t).*cos(2*t),'--r')
this is a figure for plotting Polar(phi, r);
Khi chuyển từ hệ toạ độ cực sang hệ toạ độ Đêcart ta lμm nh− sau [x,y]=pol2cart(phi,
r) sau đó dùng lệnh Plot(x,y)
t = 0:.01:2*pi;
h=sin(2*t).*cos(2*t);
[x,y]=pol2cart(t,h); axis(equal)
plot(x,y);grid on;
notice : command Axis(‘equal’) set unit which is divided in X and Y axis
Đối với hệ toạ độ cầu Trong Matlab không có hμm để vẽ .tuy nhiên ta có thể chuyển
đổi từ hệ toạ độ cầu thμnh hệ toạ độ ĐềCart trong không gian
[x,y,z]=sph2cart(theta,phi,r) sau đó dùng hμm vẽ trong không gian lμ plot3(x,y,z)
Trang 8
4.5 Đồ thị cột
bar, barh
Cấu trúc
bar(Y)
bar(x,Y)
bar(...,width)
bar(...,'style')
bar(...,LineSpec)
II. Mô tả
Vẽ biểu đồ các giá trị trong véc tor hoặc trong Matrận nh− lμ thanh ngang hoặc thanh
thẳng đứng
bar(Y) vẽ một đồ thị cột cho mỗi phần tử trong Y. Nếu Y lμ một ma trận ,bar nhóm các
thanh đ−ợc tạo ra bởi mỗi phần tử trong mỗi hμng.
Tỷ lệ trục x từ 1 to length(Y) khi Y lμ một vector, vμ 1 đến size(Y,1), đó chính lμ số hμng
, khi Y lμ một ma trận .
bar(x,Y) vẽ một đồ thị cột cho mỗi phần tử trong Y tại các vị trí xác định trong x, ở đó x
lμ vector tăng định nghĩa các khoảng cho các cột thẳng đứng. Nếu Y lμ một ma trận, bar
gộp các cột t−ơng ứng trong cùng một hμng trong Y tại vị trí t−ơng ứng với một phần tử
trong x.
bar(...,width) hμm nμy giống các hμm trên nh−ng có thêm đặc tính đặt độ rộng của
cột.Giá trị mặc định của width lμ 0.8,. Nếu width is 1, các cột trong một nhóm chạm vμo
bar(...,'style') Xác định kiểu của cột
'style' lμ 'group' hoặc 'stack'. 'group' lμ chế độ mặc định
• 'group' biểu diễn n nhóm của m cột thẳng đứng ,ở đó n lμ số hμng vμ m lμ số cột
trong Y.
• 'stack' Biểu diễn đồ thị cột cho mỗi hμng của Y. Chiều cao của cột lμ tổng các
phần tử trong một hμng
bar(...,LineSpec) displays all bars using the color specified by LineSpec.
Ví dụ
Plot a bell shaped curve:
x = -2.9:0.2:2.9;
bar(x,exp(-x.*x))
colormap hsv
Trang 9
T−ơng tự đồ thị cột trong không gian lệnh vẫn giữ nguyên nh−ng thay vì bar ta thay
lệnh bar3(x,y,z)
4.6 Đồ thị bánh (Pie)
Cấu trúc:
pie( x ) :Hμm nμy vẽ đồ thị bánh với các 'khoanh' đ−ợc xác định bởi phần trăm các giá trị
trong vector x ví dụ x=[ 1 2 3 4] phân thμnh 4 khoanh trên toμn bộ vòng tròn ,mỗi
khoanh t−ơng ứng phần trăm các
phần tử trong x
>>x=[ 1 2 3 4];
>>pie(x)
cho đồ thị nh− sau:
Đỉnh cao nhất ứng với phần tử đầu
tiên của véc tor ,các phần tử tiếp
theo đ−ợc bố trí theo chiều ng−ợc
chiều kim đồng hồ .
Nếu tổng các phần tử trong vec tor x
<1 thì trên đồ thị bánh biểu diễn
phần trăm chính lμ các phần tử đó .
Ví dụ
>> x=[ 0.1 0.2 0.3 ] % t−ơng ứng với 10% 20% 30%
>>pie(x);
Trang 10
Trang 11
ch−ơng 4
Ma trận - các phép toán về ma trận.
4.1 Khái niệm:
- Trong MATLAB dữ liệu để đ−a vμo xử lý d−ới dạng ma trận.
- Ma trận A có n hμng, m cột đ−ợc gọi lμ ma trận cỡ n ì m. Đ−ợc ký hiệu An ì m
- Phần tử aij của ma trận An ì m lμ phần tử nằm ở hμng thứ i, cột j .
- Ma trận đơn ( số đơn lẻ ) lμ ma trận 1 hμng 1 cột.
- Ma trận hμng ( 1 ì m ) số liệu đ−ợc bố trí trên một hμng.
a11 a12 a13 ... a1m
- Ma trận cột ( n ì 1) số liệu đ−ợc bố trí trên 1 cột.
a11
a21
a31
.
.
an1
4.1.1 Các qui định để định nghĩa một ma trận:
- Tên ma trận có thể gồm 31 ký tự. Bắt đầu phải bằng chữ cái sau đó có thể lμ
số, chữ cái, các ký tự đặc biệt ... Tên đặt bên trái dấu bằng , bên phải dấu bằng
lμ các phần tử của ma trận.
- Bao quanh các phần tử của ma trận bằng dấu ngoặc vuông.
- Các phần tử trong ma trận đ−ợc cách nhau bởi ký tự trống hoặc dấu phẩy ( , ).
- Kết thúc một hμng trong ma trậnFile đính kèm:
Tu hoc Matlap.pdf



