ĐẠI HỌC QUỐC GIA HÀ NỘI
TR NG Đ I H C KHOA H C T NHIÊNƯỜ Ạ Ọ Ọ Ự
KHOA HÓA HỌC
MATLAB NG D NGỨ Ụ
CHO NGÀNH HÓA H CỌ
VÀ CÔNG NGH HÓA H CỆ Ọ
HÀ N I-2003Ộ
L i gi i thi uờ ớ ệ
MATLAB integrates mathematical computing, visualization, and a powerful language to
provide a flexible environment for technical computing. MATLAB includes tools for:
Data acquisition
Data analysis and exploration
Visualization and image processing
Algorithm prototyping and development
Modeling and simulation
Programming and application development
2
Mục lục
1. Cài đ t và giao di n c a matlabặ ệ ủ 8
1.1. C u hình yêu c u v i Matlab 6.0, 6.5 ấ ầ ớ 8
1.2. Cài đ t ph n m mặ ầ ề 9
1.3. Giao di nệ 9
2. Nh ng khái ni m c sữ ệ ơ ở 10
2.1. Các phím t tắ 10
2.2. L p trình v i Matlabậ ớ 10
2.2.1. Bi n trong matlabế 12
2.2.2. Nh p d li uậ ữ ệ 13
2.2.3. Làm vi c v i workspaceệ ớ 14
2.2.4. Làm vi c v i command historyệ ớ 15
2.2.5. Làm vi c v i current directory, qu n lý t pệ ớ ả ệ 17
3. Các d ng hi n th s và các hàm toán h c thông d ngạ ể ị ố ọ ụ 18
3.1. Các d ng hi n th sạ ể ị ố 18
3.2. S ph cố ứ 18
3.3. Các hàm toán h c thông d ngọ ụ 19
4. Qu n lý ma tr n d li uả ậ ữ ệ 20
4.1. Ma tr n 1 chi uậ ề 20
4.1.1. Ma tr n hàngậ 20
3
4.1.2. Ma tr n c tậ ộ 21
4.2. Ma tr n nhi u chi uậ ề ề 22
4.3. Các phép toán trong ma tr nậ 23
4.5. Đ a ch d li u trong ma tr nị ỉ ữ ệ ậ 24
4.6. Các hàm thông d ngụ 25
6. Qu n lý văn b nả ả 27
7. Qu n lý th i gianả ờ 29
7.1 Các hàm th i gianờ 29
7.2. L p l ch các tháng ậ ị 29
7.3. Hi n th ngày gi hi n t iể ị ờ ệ ạ 29
7.3. Tính kho ng th i gian ả ờ 31
8. C u trúc vòng l p và đi u ki n ấ ặ ề ệ 31
8.1. Vòng l p for ặ 31
8.2. Vòng l p whileặ 32
8.3. C u trúc đi u ki n if-else-endấ ề ệ 33
8.4. C u trúc switch-caseấ 33
9. Phân tích d li u và các hàm chuy n đ i Fourierữ ệ ể ổ 34
10. T o và gi i h ph ng trình tuy n tínhạ ả ệ ươ ế 38
11. Đa th c và các hàm n i suyứ ộ 40
11.1. Các phép toán đ i v i đa th cố ớ ứ 40
11.1.1. C ng, tr hai đa th cộ ừ ứ 40
11.1.2. Nhân, chia hai đa th cứ 41
11.1.3. Tính giá tr đa th cị ứ 41
11.1.4. Đ o hàm và tích phân ạ 42
11.1.5. Nghi m c a ph ng trình đa th cệ ủ ươ ứ 42
11.2. Các phép n i suy d li uộ ữ ệ 43
12. Hàm s ố 49
12.1. Kh o sát hàm sả ố 49
* V đ th hàm s : ẽ ồ ị ố 49
* Xác đ nh các c c tr trong lân c n h pị ự ị ậ ẹ 49
12.2. Tìm giao đi m c a đ th hàm s v i tr c hoành và v i đ th hàm s khácể ủ ồ ị ố ớ ụ ớ ồ ị ố . 50
12.3. Đ o hàmạ 50
12.4. Tích phân 50
13. H p công cộ ụ 51
13.1. Gi i thi u các h p công cớ ệ ộ ụ 51
13.2. H p công c toán h cộ ụ ọ 52
13.1.1. Bi n t ng tr ng ế ượ ư 52
* Khái ni mệ 52
* Đ i tên bi nổ ế 53
* Hàm double chuy n m t h ng t ng tr ng thành ki u s ể ộ ằ ượ ư ể ố 53
13.1.2. Các phép toán trên bi u th c t ng tr ngể ứ ượ ư 54
* Các hàm s , ma tr n s d ng ký t +, -, *, /, ^ đ th c hi n các phép toán c ngố ậ ử ụ ự ể ự ệ ộ
tr , nhân, chia, mũ hóaừ 54
4
* Hàm compose(f,g)=f(g(x)) k t h p hai hàm s và finverse(g) xác đ nh hàmế ợ ố ị
ng c c a gượ ủ 55
13.1.3. Đ o hàm và tích phânạ 55
13.1.4. Gi i các ph ng trình t ng tr ngả ươ ượ ư 57
14. Đ h a trong matlabồ ọ 60
14.1. Đ h a trong không gian hai chi uồ ọ ề 61
14.1.1. Các hàm v đ thẽ ồ ị 61
14.1.2. Các tùy ch n ọ 62
14.1.3. H tr c t a đ , nhãn, l i, h p ch a tr c, chú thíchệ ụ ọ ộ ướ ộ ứ ụ 63
14.2. Đ h a trong không gian 3 chi uồ ọ ề 67
14.2.1. Đ th b m t và l iồ ị ề ặ ướ 67
14.2.3. Các tùy ch n, h tr c t a đ , nhãn, l i, h p ch a tr c, chú thíchọ ệ ụ ọ ộ ướ ộ ứ ụ 71
14.2.4. Đi u khi n màu và ánh sángề ể 74
Các kh i l nh c b nố ệ ơ ả 76
Các l nh đa năngệ 76
Qu n lý hàm và l nh ả ệ 76
Qu n lý bi n và không gian làm vi cả ế ệ 77
Ki m soát command windowể 77
Làm vi c v i file và môi tr ng ho t đ ngệ ớ ườ ạ ộ 77
Kh i đ ng và thoát ch ng trình MATLABở ộ ươ 78
Các ký t đ c bi t và toán t ự ặ ệ ử 78
Các hàm logic 79
Xây d ng và g r i ngôn ng l p trìnhự ỡ ố ữ ậ 79
MATLAB là m t ngôn ng l p trìnhộ ữ ậ 79
Đi u khi n lu ng (Control Flow)ề ể ồ 79
Nh p d li u (Interactive Input)ậ ữ ệ 79
L p trình h ng đ i t ng (Object-Oriented Programming)ậ ướ ố ượ 80
G r iỡ ố 80
Các ma tr n c s và thao tác v i ma tr n (Elementary Matrices and Matrixậ ơ ở ớ ậ
Manipulation) 80
Ma tr n c s và m ng (Elementary Matrices and Arrays)ậ ơ ở ả 80
H ng s và bi n đ c bi t (Special Variables and Constants)ằ ố ế ặ ệ 81
Ngày tháng và th i gian (Time and Dates)ờ 81
Thao tác v i ma tr n (Matrix Manipulation)ớ ậ 81
Các hàm vector (Vector Functions) 82
Các ma tr n chuyên d ng (pecialized Matrices)ậ ụ 82
Các hàm toán h c c s (Elementary Math Functions)ọ ơ ở 82
Các hàm toán h c chuyên d ng (Specialized Math Functions)ọ ụ 83
Chuy n đ i h tr c t a đ (Coordinate System Conversion)ể ổ ệ ụ ọ ộ 83
Hàm ma tr n và đ i s h c tuy n tính (Matrix Functions - Numerical Linear Algebra )ậ ạ ố ọ ế
83
Phân tích ma tr n (Matrix Analysis)ậ 83
Các ph ng trình tuy n tính (Linear Equations)ươ ế 84
5
Giá tr duy nh t và giá tr riêng (Eigenvalues and Singular Values)ị ấ ị 84
Các hàm ma tr n (Matrix Functions)ậ 84
Các hàm c p d i (Low Level Functions)ấ ướ 84
Phân tích d li u và hàm chuy n đ i Fourier (Data Analysis and Fourier Transformữ ệ ể ổ
Functions) 84
Sai phân h u h n (Finite Differences)ữ ạ 85
S t ng quan (Correlation)ự ươ 85
L c và x p tr t t (Filtering and Convolution)ọ ế ậ ự 85
Các hàm n i suy và đa th c (Polynomial and Interpolation Functions)ộ ứ 86
Đa th c (Polynomials)ứ 86
N i suy d li u (Data Interpolation)ộ ữ ệ 86
Các ph ng pháp toán h c không tuy n tính và các hàm ch c năng (Functionươ ọ ế ứ
Functions - Nonlinear Numerical Methods) 87
Hàm ma tr n r i r c (Sparse Matrix Functions)ậ ờ ạ 87
Các ma tr n r i r c c s (Elementary Sparse Matrices)ậ ờ ạ ơ ở 87
Chuy n đ i gi a ma tr n r i r c và ma tr n đ y đ (Full to Sparse Conversion)ể ổ ữ ậ ờ ạ ậ ầ ủ 87
Làm vi c v i d li u khác 0 c a ma tr n r i r c (Working with Nonzero Entries ofệ ớ ữ ệ ủ ậ ờ ạ
Sparse Matrices) 87
Hình nh ma tr n r i r c ả ậ ờ ạ 88
Thu t toán x p x p (Reordering Algorithms)ậ ắ ế 88
Quy t c, S đi u ki n, Th t (Norm, Condition Number, and Rank)ắ ố ề ệ ứ ự 88
Ph ng th c r i r c c a các ph ng trình tuy n tính (Sparse Systems of Linearươ ứ ờ ạ ủ ươ ế
Equations) 88
Giá tr duy nh t và giá tr riêng r i r c (Sparse Eigenvalues and Singular Values)ị ấ ị ờ ạ 88
Các hàm t o âm thanh (Sound Processing Functions)ạ 89
Các hàm âm thanh chung (General Sound Functions) 89
Các hàm âm thanh chuyên d ng (SPARC station-Specific Sound Functions)ụ 89
Hàm âm thanh v i format wav (.WAV Sound Functions)ớ 89
Các hàm xâu ký t (Character String Functions)ự 89
Chung (General) 89
Chuy n đ i gi a xâu và hàm (String to Function Handle Conversion)ể ổ ữ 89
Thao tác v i xâu (String Manipulation)ớ 89
Chuy n đ i gi a xâu và s (String to Number Conversion)ể ổ ữ ố 90
Chuy n đ i c s (Radix Conversion)ể ổ ơ ố 90
Các hàm vào/ra file (File I/O Functions) 90
File Opening and Closing 90
D li u ngôn ng máy (Unformatted I/O)ữ ệ ữ 90
D li u đã format (Formatted I/O)ữ ệ 90
V trí file (File Positioning)ị 90
Chuy n đ i xâu (String Conversion)ể ổ 90
Vào ra file chuyên d ng (Specialized File I/O)ụ 91
Các hàm bitwise (Bitwise Functions) 91
Các hàm c u truc (Structure Functions)ấ 91
6
Các hàm đ i t ng Matlab (MATLAB Object Functions0ố ượ 91
Giao di n Malab v i Java (MATLAB Interface to Java)ệ ớ 91
Các hàm m ng t bào (Cell Array Functions)ả ế 92
Các hàm m ng nhi u chi u (Multidimensional Array Functions)ả ề ề 92
Đ th và hình nh d li u (Plotting and Data Visualization)ồ ị ả ữ ệ 92
Đ th và bi u đ c b n (Basic Plots and Graphs)ồ ị ể ồ ơ ả 92
V đ th 3 chi u (Three-Dimensional Plotting)ẽ ồ ị ề 92
Đ th c t l p th tích (Volumetric slice plot)ồ ị ắ ớ ể 93
Chú thích và đ ng l i h tr c đ th (Plot Annotation and Grids)ườ ướ ệ ụ ồ ị 93
Đ th b m t, l i, đ ng đ ng m c (Surface, Mesh, and Contour Plots)ồ ị ề ặ ướ ườ ồ ứ 93
Hình nh kh i (Volume Visualization)ả ố 93
Thi t l p ph m vi (Domain Generation)ế ậ ạ 94
Đi u khi n góc nhìn (View Control)ề ể 95
Ánh sáng (Lighting) 95
Tính trong su t (Transparency)ố 95
Cách t o màu (Color Operations)ạ 96
B n đ màu (Colormaps)ả ồ 96
In n (Printing)ấ 96
Kênh đi u khi n chung và đ h a (Handle Graphics, General)ề ể ồ ọ 96
Làm vi c v i d li u ng d ng (Working with Application Data)ệ ớ ữ ệ ứ ụ 97
T o kênh đi u khi n đ i t ng và đ h a (Handle Graphics, Object Creation)ạ ề ể ố ượ ồ ọ 97
Đi u khi n c a s hình nh và đ h aề ể ử ổ ả ồ ọ 97
Đi u khi n đ h a và h tr cề ể ồ ọ ệ ụ 97
Thao tác v i đ i t ngớ ố ượ 97
Tác đ ng ng i s d ng đ a vào (Interactive User Input)ộ ườ ử ụ ư 98
Mi n quan tâm (Region of Interest)ề 98
Giao di n đ h a (raphical User Interfaces)ệ ồ ọ 98
H p tho i (Dialog Boxes)ộ ạ 98
Phát tri n giao di n ng i s d ng (User Interface Development)ể ệ ườ ử ụ 98
Vào ra c ng n i ti p (Serial Port I/O)ổ ố ế 98
T o m t đ i t ng c ng n i ti pạ ộ ố ượ ổ ố ế 98
Vi t và đ c d li u (Writing and Reading Data)ế ọ ữ ệ 98
Đ nh hình và tr l i thu c tính (Configuring and Returning Properties)ị ả ạ ộ 99
Thay đ i tr ng thái (State Change)ổ ạ 99
L nh đa năng (General Purpose)ệ 99
7
1. Cài đ t và giao di n c a matlabặ ệ ủ
1.1. C u hình yêu c u v i Matlab 6.0, 6.5 ấ ầ ớ
Đ có thông tin m i nh t v yêu c u c a h th ng chúng ta có th vào MathWorksể ớ ấ ề ầ ủ ệ ố ể
Web site (www.mathworks.com), system requirements page.
Matlab là m t ph n m m có yêu c u khá cao v i h th ng máy tính, đ ch y ph nộ ầ ề ầ ớ ệ ố ể ạ ầ
m m này máy tính c n đ m b o nh ng y u t t i thi u sau:ề ầ ả ả ữ ế ố ố ể
B x lý:ộ ử
Pentium, Pentium Pro, Pentium II, Pentium III, Pentium IV, or AMD Athlon
H đi u hành:ệ ề
Microsoft Windows 95, Windows 98 (original and Second Edition), Windows NT 4.0
(with Service Pack 5 for Y2K compliancy) or Windows 2000
CD-ROM đ cài đ t.Ổ ể ặ
T i thi u 64 MB RAM đ i v i Windows 98, NT 4.0 và 2000; nên có 128ố ể ố ớ
MB RAM. Đ i v i Window XP nên có 256 MB RAMố ớ
Không gian c ng đòi h i tùy thu c kích th c partition và l a ch n c a b n. Càiổ ứ ỏ ộ ướ ự ọ ủ ạ
đ t đ y đ các l a ch n ph n m m Matlab 6.5 chi m kho ng 900 MB c ngặ ầ ủ ự ọ ầ ề ế ả ổ ứ
Card hình t i thi u 8 bit và màn hình hi n th t i thi u 256 màu ố ể ể ị ố ể
Nh ng ph n b tr nên cóữ ầ ổ ợ
Card tăng t c đ đ h aố ộ ồ ọ
Printer
Microsoft Word 7.0 (Office 95), 8.0 (Office 97), or Office 2000 is
required to run the MATLAB Notebook.
Đ t o các MEX-files c a riêng b n c n có:ể ạ ủ ạ ầ
8
Compaq Visual Fortran 5.0 or 6.1, Microsoft Visual C/C++ version 5.0 or 6.0, Borland
C/C++ version 5.0, 5.02, Borland C++Builder version 3.0, 4.0, or 5.0, Lcc 2.4 (bundled
with MATLAB)
Adobe Acrobat Reader đ in các tài li u do Matlab cung c p trên m ng.ể ệ ấ ạ
1.2. Cài đ t ph n m mặ ầ ề
1.3. Giao di nệ
Sau khi cài đ t Matlab l n đ uặ ầ ầ
tiên ch y ch ng trình, ph n m nạ ươ ầ ề
hi n th giao di n m c đ nh nh hìnhể ị ệ ặ ị ư
1. (Desktop layout default)
Trên c a s chính có tiêu đủ ổ ề
MATLAB ch a 3 c s nh tr ngứ ử ổ ỏ ở ạ
thái g n dính (dock) v i c a sắ ớ ử ổ
chính. N u chúng ta mu n di chuy nế ố ể
t do các c a s này chúng b m vàoự ử ổ ấ
nút trên thanh tiêu đ các c a sề ử ổ
nh ho c b m gi chu t trái vàoỏ ặ ấ ữ ộ
thanh tiêu đ và kéo th . Khi các c a s t do chúng có thêm thanh menu (hình 2) đ cácề ả ử ổ ự ể
c a s tr v tr ng thái nh cũ chúng ta vào Viewử ổ ở ề ạ ư Dock (Workspace ho c currentặ
directory ).
Matlab có 6 ki u giao di n khác nhau: Default, Command ể ệ Window Only, Single, Short
History, Tail History, Five Panel (Hinh 3).
9
Hình 1: Giao di n m c đ nh c a Matlabệ ặ ị ủ
Hình 2: C a s ử ổ workspace t ự
do
Hình 3: Các ki u giao di n c a ể ệ ủ
Matlab
2. Nh ng khái ni m c sữ ệ ơ ở
2.1. Các phím t tắ
↑ ho c Ctrl+p ặ G i l i l nh v a th c hi n tr c đóọ ạ ệ ừ ự ệ ướ
ESC ho c ↓ặ Xóa l nh v a g iệ ừ ọ
→ ho c Ctrl+fặ Chuy n con tr sang ph i m t ký tể ỏ ả ộ ự
← ho c Ctrl+bặ Chuy n con tr sang trái m t ký tể ỏ ộ ự
Ctrl+l ho c Ctrl+←ặ Chuy n con tr sang trái m t tể ỏ ộ ừ
Ctrl+r ho c Ctrl+→ặ Chuy n con tr sang ph i m t tể ỏ ả ộ ừ
Ctrl+a ho c Homeặ Chuy n con tr v đ u dòngể ỏ ề ầ
Ctrl+k Xóa t v trí con tr đ n cu i dòngừ ị ỏ ế ố
Ctrl+break K t thúc vòng l pế ặ
Shift+→ ho c ←ặ Đ ch n đo n văn b n c n xóa hay copyể ọ ạ ả ầ
L nh h th ngệ ệ ố
clc Xóa c a s dòng l nhử ổ ệ
clf Xóa c a s đ h aử ổ ồ ọ
computer Đ a ra tên lo i máy tính ư ạ
Ctr-c D ng ch ng trình khi máy tình tr ngừ ươ ở ạ
vòng l p không k t thúcặ ế
demo Xem các ch ng trình mô t kh năng c aươ ả ả ủ
matlab
exit, quit Thoát Matlab
help L nh nh n tr giúpệ ậ ợ
input Nh p d li u t bàn phímậ ữ ệ ừ
load T i các bi n đã l u trong 1 file vào khôngả ế ư
gian làm vi c ệ
Pause T m ng ng ch ng trìnhạ ừ ươ
save L u gi không gian làm vi cư ữ ệ
2.2. L p trình v i Matlabậ ớ
Matlab là ph n m m h tr tính toán và hi n th m nh v i các b l nh thu c nhi uầ ề ỗ ợ ể ị ạ ớ ộ ệ ộ ề
lĩnh v c: toán h c, công ngh thông tin, công ngh hóa h c, th ng kê k toán, kinhự ọ ệ ệ ọ ố ế
t và không ng ng đ c c p nh t. Matlab gi i quy t các v n đ toán h c t đ n gi nế ừ ượ ậ ậ ả ế ấ ề ọ ừ ơ ả
t i ph c t p nh t.ớ ứ ạ ấ
Sau khi kh i đ ng ch ng trình trong c a s chính g m 3c a s nh : ở ộ ươ ử ổ ồ ử ổ ỏ Workspace,
Command History, Command Window.
* Các phép tính thông d ng và các ký hi u trong Matlabụ ệ
Ký
hi uệ
Phép tính Ví dụ
+ C ngộ 2+3
10
- Trừ 23-56
* Nhân s , ma tr nố ậ 12*67
^ Lũy th aừ 2^2=4
\ Chia ng cượ 45\23=0,5111
/ Chia thu nậ 23/45=0,5111
: D u hai ch mấ ấ
( ) [ ] {} Các d u ngo c s d ng trong phép toánấ ặ ử ụ
. Ch m th p phânấ ậ
S ti p t cự ế ụ
, D u ph yấ ẩ
; Ch m ph yấ ẩ
% Vi t chú thích sau d u %ế ấ
! Ch m thanấ
' Chuy n v và nháy đ nể ị ơ
.' Chuy n v liên h pể ị ợ
= Chuy n đ iể ổ
== D u b ngấ ằ
< Toán t quan h nh h nử ệ ỏ ơ
> L n h nớ ơ
>= l n h n ho c b ngớ ơ ặ ằ
<= Nh h n ho c b ngỏ ơ ặ ằ
~= Không b ngằ
& Phép toán logic và 0&4=0, 4&4=1, 0&0=0
| Phép toán logic ho cặ 0|0=0, 0|1=1, 1|1=1
~ Phép toán logic không ~0=1, ~4=0
xor Phép toán logic ho c tuy t đ iặ ệ ố xor(0,4)=1, xor(4,4)=0,
xor(0,0)=0
T i Command Window chúng ta đánhạ
các l nh sau d u nh c l nh >>ệ ấ ắ ệ
VD1: Tính trung bình các bình ph ngươ
c a: 12, 17, 23ủ
T i Command Window ta vi t các l nhạ ế ệ
nh sau:ư
>> a=12
a =
12
>> b=17
b =
17
>> c=23
c =
11
Hình 4
Hình 5
23
>> kq=(a^2+b^2+c^2)/3
kq =
320.6667
>>
T i c a s ạ ử ổ Workspace và Commad History ta thu đ c k t qu nh Hình 4 và Hình 5ượ ế ả ư
C a s ử ổ Workspace đ c g i là không gian làm vi c c a Matlab, nó ch a các bi nượ ọ ệ ủ ứ ế
đang s d ng (a, b, c, kq). C a s history ghi l i toàn b quá trình thao tác c a chúng ta.ử ụ ử ổ ạ ộ ủ
2.2.1. Bi n trong matlabế
* Các phiên b n tr c 6.5 các bi n, tên hàm và hàm con, tên tr ng c u trúc (structureả ướ ế ườ ấ
field), M-file, MEX-file và MDL-file gi i h n 31 ký t . T phiên b n Matlab 6.5 các tênớ ạ ự ừ ả
này có t i đa 63 ký t . Chúng ta có th ki m tra b ng hàm:ố ự ể ể ằ
>>namelengthmax
ans =
63
N u chúng ta đ t bi n l n h n 63 ký t Malab t đ ng b các ký t t 64 tr đi.ế ặ ế ớ ơ ự ự ộ ỏ ự ừ ở
* Các quy đ nh trong đ t tên bi nị ặ ế
Quy đ nhị Ví dụ
Tên bi n phân bi t ch hoa và chế ệ ữ ữ
th ngườ
X, x là hai bi n khác nhauế
Tên bi n ph i b t đ u là ch sau đó cóế ả ắ ầ ữ
th là s ho c g ch d i và không sể ố ặ ạ ướ ử
d ng các ký t đ c bi t khácụ ự ặ ệ
a23_er4 đúng
1233smds sai
a#sf23 sai
Tên bi n ph i vi t liên t cế ả ế ụ Qwer12 đúng
qwqe 45dr sai
* Ngoài các bi n trong quá trình quá trình l p trình chúng ta đ a vào, Matlab còn có cácế ậ ư
bi n đ c bi t. N u chúng ta đ t tên bi n trùng v i bi n đ c bi t thì khi Matlab s d ngế ặ ệ ế ặ ế ớ ế ặ ệ ử ụ
đ n bi n đó giá tr bi n c a chúng ta s b thay đ i ho c giá tr c a bi n đ c bi t khôngế ế ị ế ủ ẽ ị ổ ặ ị ủ ế ặ ệ
đ c s d ng, t i khi chúng ta xóa bi n do chúng ta đ t trùng.ượ ử ụ ớ ế ặ
Tên bi n đ c bi tế ặ ệ Giá trị
ans K t qu phép toánế ả
eps Ch đ chính xác c a các phép tính toán (2.2204e-016 đ n v ) ỉ ộ ủ ơ ị
flops S c a phép toán s th cố ủ ố ự
i và j i = j = (-1)^(1/2)
inf Đ ch s vô cùng l n (a/0, a khác 0)ể ỉ ố ớ
NaN ho c nanặ Ch s không xác đ nh (0/0)ỉ ố ị
nargin S các đ i s đ c đ a vào hàm đang s d ngố ố ố ượ ư ử ụ
narout S các đ i s hàm đ a raố ố ố ư
pi 3.1416
realmax S l n nh t c a s th c (1.7977e+308)ố ớ ấ ủ ố ự
12
realmin S nh nh t c a s th c (2.2251e-308)ố ỏ ấ ủ ố ự
Các l nh đ i v i các bi n trong ệ ố ớ ế workspace
clear, clear variables, Xóa toàn b bi n trong không gian làm vi cộ ế ệ
clear global Xóa bi n toàn bế ộ
clear functions xóa các M-, MEX- function
clear bi nế Xóa t ng bi n riêng bi từ ế ệ
clear bi n1 bi n2 bi n3 ế ế ế Xóa các bi n ch nế ọ
clear all Xóa t t c các bi n, hàm, liên k t MEX ấ ả ế ế
who Hi n th các bi n đ nh trong workspaceể ị ế ị
whos Hi n th các bi n cùng các thông tin kích th c, sể ị ế ướ ố
byte, ki u m ngể ả
exist (‘a’) Ki m tra xem ‘a’ là bi n đ c đ nh nghĩa hay hàmể ế ượ ị
đ c đ nh nghĩa, cho k t qu t 0-8. ượ ị ế ả ừ
Đ có thêm thông tin chúng ta th c hi n l nh:ể ự ệ ệ
>> help clear
>> help who
2.2.2. Nh p d li uậ ữ ệ
Đ nh p gi li u cho m t ch ng trình chúng ta có th nh p tr c ti p trong quá trìnhể ậ ữ ệ ộ ươ ể ậ ự ế
vi t ch ng trình. Tuy nhiên, đi u đó có th gây khó khăn trong l u tr và qu n lý dế ươ ề ể ư ữ ả ữ
li u. Matlab cho phép nh p d li u t m t file văn b n format d ng *.txt. Matlab qu nệ ậ ữ ệ ừ ộ ả ạ ả
lý và x lý d li u d ng ma tr n. Khi dùng ph n m m notepad, wordpad, đ l p fileử ữ ệ ạ ậ ầ ề ể ậ
d li u chúng ta chú ý gi a các s c a c t cách nhau ít nh t 1 d u cách (chúng ta cũng cóữ ệ ữ ố ủ ộ ấ ấ
th thay b ng d u ‘,’ ho c Tab ho c theo ki u t ch n, dùng enter đ phân cách gi aể ằ ấ ặ ặ ể ự ọ ể ữ
các hàng.
Ví d chúng ta vào Fileụ Import data và nh p file d li u 5bien.txt đ c so n th oậ ữ ệ ượ ạ ả
nh sau:ư
a b c d e
12 23 234 34 345
23 23 34 23
12 23
123 234 234
23
Matlab x p x p l i nh hình 6ắ ế ạ ư
13
Trên Hình 6 chúng ta ch n next t đó có hai cách đ t bi n cho d li u ọ ừ ặ ế ữ ệ
D ng 1: có 3 bi n, bi n data là ma tr n 5x5 và 2 bi n còn l i là textdata = [a b c d e]vàạ ế ế ậ ế ạ
colheaders=[a b c d e] d ng matran hàng 1x5.ạ
D ng 2: có 5 bi n c t a=[12;23;12;123;23], b=[23;23;23;234;0], c=[234;34;0;234;0],ạ ế ộ
d=[34;24;0;0;0], e=[345;0;0;0;0] d ng ma tr n c t 5x1ạ ậ ộ
2.2.3. Làm vi c v i ệ ớ workspace
Nh p chu t ph i vào 1 bi n trong workspace ta nh n đ c menu nh hình 7ấ ộ ả ế ậ ượ ư
* Open dùng đ bi t và thay đ i các thu c tính c a bi n ể ế ổ ộ ủ ế
Ví d bi n data khi m ta có các thu c tính sauụ ế ở ộ
Bi n data là m t ma tr n 5 hàng năm c t ta có th thay đ i s hàng (ô size), s c t (ôế ộ ậ ộ ể ổ ố ố ộ
by) và thay đ i giá tr các s trong ma tr n. Ki u format các s trong ma tr n trên d ngổ ị ố ậ ể ố ậ ạ
shotG, chúng ta s tìm hi u các d ng format s trong ph n sau.ẽ ể ạ ố ầ
* Trong m c Graph là các d ng bi u di n đ th 2D, 3D, c a bi n data.ụ ạ ể ễ ồ ị ủ ế
14
Hình 6
Hình 7
* Import data m thêm các bi n l u trong file d li u *.mat. Chúng ta l u ý các bi nở ế ư ữ ệ ư ế
m i m cùng tên s ghi đè lên các bi n hi n th i trong c a s workspace.ớ ở ẽ ế ệ ờ ử ổ
* Workspace có th đ c save l i d i d ng file *.mat c a 1 s bi n l a ch n ho cể ượ ạ ướ ạ ủ ố ế ự ọ ặ
t t ấ c ả các bi n trong ế workspace. Khi c n s d ng, t menu c a workspace chúng ta ch nầ ử ụ ừ ủ ọ
import data và m l i file này.ở ạ
2.2.4. Làm vi c v i command historyệ ớ
C a s command history l u tr các l nh đ c th c hi n command window. Đử ổ ư ữ ệ ượ ự ệ ở ể
th c hi n l i m t l nh hay nhóm l nh tr c đó chúng ta có th kéo th 1 l nh hay m tự ệ ạ ộ ệ ệ ướ ể ả ệ ộ
nhóm l nh t command history vào trong commandệ ừ
window. Chúng ta cũng có th kéo 1 l nh hay m tể ệ ộ
nhóm l nh trong command window vào dòng l nhệ ệ
hi n th i đ th c hi n l i các l nh đó. ệ ờ ể ự ệ ạ ệ
T command history n u m t nhóm l nh nào đóừ ế ộ ệ
ph i s d ng nhi u l n chúng ta có th save chúngả ử ụ ề ầ ể
d i d ng M-file (Create M-File). Khi c n th c hi nướ ạ ầ ự ệ
l i nhóm l nh này chúng ta ch vi c đánh tên M-fileạ ệ ỉ ệ
và d u nh c l nh và b m enter. ấ ắ ệ ấ
Gi s trong trong command ả ử window chúng ta
th c hi n các l nhự ệ ệ
>> a=1:10
a =
Columns 1 through 10
1 2 3 4 5 6 7 8 9 10
>> a(1)=[ ]
a =
Columns 1 through 9
2 3 4 5 6 7 8 9 10
>> a(3)=[ ]
a =
Columns 1 Column 8
2 3 5 6 7 8 9 10
>> b=a*3+5
b =
Columns 1 through 8
11 14 20 23 26 29 32 35
Khi đó trong c a s command history các l nh đ c l u nh sauử ổ ệ ượ ư ư
a=1:10
a(1)=[ ]
a(3)=[ ]
b=a*3+5
Khi 4 l nh này đ c save thành M-File có tên là “nhomlenh.m”, đ th c hi n l i 4ệ ượ ể ự ệ ạ
l nh này ta ch vi c đánh l nh:ệ ỉ ệ ệ
15
Hình 8
>>nhomlenh
a =
Columns 1 through 10
1 2 3 4 5 6 7 8 9 10
>> a(1)=[ ]
a =
Columns 1 through 9
2 3 4 5 6 7 8 9 10
>> a(3)=[ ]
a =
Columns 1 Column 8
2 3 5 6 7 8 9 10
>> b=a*3+5
b =
Columns 1 through 8
11 14 20 23 26 29 32 35
Nh v y chúng ta có th s d ng M-File nh m t ch ng trình con hay hàm con, M-ư ậ ể ử ụ ư ộ ươ
file ph i có ph n m r ng là “m”. Matlab đ a vào m t s hàm ng d ng trong M-Fileả ầ ở ộ ư ộ ố ứ ụ
đ có giao ti p t t h n v i ng i l p trình:ể ế ố ơ ớ ườ ậ
Hàm Ch c năngứ
disp (ans) Hi n th các k t qu mà không hi n th tênể ị ế ả ể ị
bi nế
echo on, echo off, echo file on,
echo file off, echo on all, echo off all
Đi u khi n c a s l nh l p l i các l nh c aề ể ử ổ ệ ặ ạ ệ ủ
M-File
Input M-File nh n d li u t bàn phímậ ữ ệ ừ
Keyboard Trao quy n đi u khi n t m th i cho bàn phímề ề ể ạ ờ
>>return
d ng l nh keaboard, M-File ti p t c ch y cácừ ệ ế ụ ạ
l nhệ
Pause D ng ch ng trình t i khi phím b t kỳ đ cừ ươ ớ ấ ượ
b mấ
pause(n) D ng n giâyừ
waitforbuttonpress D ng t i khi phím chu t ho c bàn phím đ cừ ớ ộ ặ ượ
b mấ
16
Hình 9
2.2.5. Làm vi c v i current directory, qu n lý t pệ ớ ả ệ
Current directory là n i l u tr các file d li u và M-File mà Malab x d ng nh đ aơ ư ữ ữ ệ ử ụ ư ị
ch đ u tiên khi tìm ki m các M-File trong các thỉ ầ ế ư m c có trong đ ng d n c a Matlab. ụ ườ ẫ ủ
B m chu t ph i ta đ c menu nh hình 9, v i M-File ta có th ch n Open đ m ,ấ ộ ả ượ ư ớ ể ọ ể ở
s a ch a, v i các file *.mat khi ta ch n open các bi n c a file đ c đ a vào không gianử ữ ớ ọ ế ủ ượ ư
làm vi c hi n th i c a Matlab. ệ ệ ờ ủ
Trong quá trình làm vi c các file d li u c a chúng ta có th n m th m c b t kỳệ ữ ệ ủ ể ằ ở ư ụ ấ
đ đ a v Current directory chúng ta b m vào nút ể ư ề ấ đ ch n th m c ch a file c n sể ọ ư ụ ứ ầ ử
d ng.ụ
M t chú ý đó là khi chúng ta s d ng m tộ ử ụ ộ
hàm, th t c t t o d ng M-File nh m t l nhủ ụ ự ạ ạ ư ộ ệ
trong command history Matlab ch tìm ki m fileỉ ế
ch a l nh trong đ ng d n đã đ c đ t s n.ứ ệ ườ ẫ ượ ặ ẵ
Vì v y, file c a chúng ta có th đang t n t iậ ủ ể ồ ạ
nh ng Matlab không nh n ra n u nh nó khôngư ậ ế ư
n m trong đ ng d n đã đ t. Đ đ t đ ngằ ườ ẫ ặ ể ặ ườ
d n cho th m c ch a file c n s d ng, chúngẫ ư ụ ứ ầ ử ụ
ta vào file Set Path Matlab s hi n th c aẽ ể ị ử
s Set Part (Hình 10) trong đó hi n th đ y đổ ể ị ầ ủ
các folder đã đ cượ đ t đ ng d n. Chúng taặ ườ ẫ
ch n ọ Add Folder , sau đó ch n folder ch aọ ứ
các file c n s d ng r i ch n ầ ử ụ ồ ọ Save Close.
Bài t p:ậ
1. Vi t b ng d li u sau d i d ng file *.txtế ả ữ ệ ướ ạ
Nguyelieu
A(mol/L)
Sanpham
(Amol/L)
Th igianluuơ
(s)
2.00 0.65 300
2.00 0.92 240
2.00 1.00 250
1.00 0.56 110
1.00 0.37 360
0.48 0.42 24
0.48 0.28 200
0.48 0.20 560
a) Nh p d li u theo hai d ng, 8x3 và 3 vec t c t, l u giá tr các bi n.ậ ữ ệ ạ ơ ộ ư ị ế
b) Tính t ng theo hàng theo c t.ổ ộ
c) L u các l nh d i d ng M-file và th c l i các tính toán theo m c b.ư ệ ướ ạ ự ạ ụ
2. Vi t M-file tính cho phép nh p m ng 1 chi u x đ tính các giá tr y=ế ậ ả ề ể ị
a*x^3+b*x^2+c*x+d v i đi u ki n a,b,c,d,x nh p t bàn phím. Đ t tên M-file là ớ ề ệ ậ ừ ặ tgtrb3
17
Hình 10
3. Cut trtrb3 t th m cử ư ụ work trong matlab ra ngoài C và đ t đ ng d n choổ ặ ườ ẫ
matlab truy c p t i đ a ch đó.ậ ớ ị ỉ
3. Các d ng hi n th s và các hàm toán h c thông d ngạ ể ị ố ọ ụ
3.1. Các d ng hi n th sạ ể ị ố
Tr c h t chúng ta xét m t s vô h n không tu n hoàn 2^(1/2), theo m c đ nh Matlabướ ế ộ ố ạ ầ ặ ị
hi n th d ng shortG:ể ị ạ
a=2^(1/2)
a=1.4142
Đ hi n th giá tr c a a Matlab có m t s khuôn d ng sau:ể ể ị ị ủ ộ ố ạ
Đ nhị
d ngạ
L nhệ Hi n th aể ị Hi n th s 3-2iể ị ố
short format short 1.4142 3.0000 - 2.0000i
shortG format short g 1.4142 3 - 2i
shortE format short e 1.4142e+000 3.0000e+000 -2.0000e+000i
long format long 1.41421319796954 3.00000000000000 -
2.00000000000000i
longG format long g 1.41421319796954 3 - 2i
longE format long e 1.414213197969543e+000 3.000000000000000e+000
-2.000000000000000e+000i
hex format hex 3ff6a09e04ad9cb8 4008000000000000
c000000000000000i
bank format bank 1.41 3.00
+ format + + +
rational format
rational
1393/985 3 - 2i
Chúng ta ph i hi u r ng Matlab luôn tính toán v i c p đ chính xác nh t có th , khiả ể ằ ớ ấ ộ ấ ể
bi n a hi n th d ng shortG: a=2^(1/2)= 1.4142 không có nghĩa là giá tr c a a d ng l i ế ể ị ạ ị ủ ừ ạ ở
4 s sau d u ph y, theo ng m đ nh matlab tính toán v i hàng trăm s sau d u ph y c aố ấ ẩ ầ ị ớ ố ấ ẩ ủ
a.
Đ thay đ i d ng hi n th s m c đ nh chúng ta vào ể ổ ạ ể ị ố ặ ị File Preferences Array
Editor sau đó l a ch n d ng format phù h p. Ngoài ra Preferences là m c cho phépự ọ ạ ợ ụ
chúng ta thay đ i nhi u giao di n gi a ng i l p trình và ph n m m.ổ ề ệ ữ ườ ậ ầ ề
3.2. S ph cố ứ
Malab có hai bi n đ c bi t đó là i=j=ế ặ ệ
1
−
dùng cho ph n o c a s th c, vai trò c a iầ ả ủ ố ự ủ
và j là t ng t nhau. u đi m đ c bi t c a Matlab đó là tính toán v i s ph c t ng tươ ự Ư ể ặ ệ ủ ớ ố ứ ươ ự
nh s th c. ư ố ự
Trong toán h c s ph c có th bi u di n d i d ng sau:ọ ố ứ ể ể ễ ướ ạ
18
A,θ=A.e
iθ
=a+bi
Trong đó A,θ và A.e
iθ
là các d ng bi u di n t a đ c c.ạ ể ễ ở ọ ộ ự
A=
22
ba
+
, θ = arc[tan(b/a)], a=A cosθ, b=A sinθ
* Các l nh chuy n h tr c t a ệ ể ệ ụ ọ
>> c=3-2i
c =
3.0000 - 2.0000i
L nhệ K t quế ả Ý nghĩa
real(c) 3 Xác đ nh ph n th cị ầ ự
imag(c) -2 Xác đ nh ph n oị ầ ả
abs(c) 3.6056 Tính argument
angle(c) -0.5880 Tính góc s ph c theo radianố ứ
conj(c) 3.0000 + 2.0000i S ph c liên h pố ứ ợ
3.3. Các hàm toán h c thông d ngọ ụ
acos(x) Hàm ng c c a hàm cosinượ ủ
acosh(x) Hàm ng c c a hàm hypecbolcosinượ ủ
asin(x) Hàm ng c c a hàm sinượ ủ
asinh(x) Hàm ng c c a hàm hypecbolsinượ ủ
atan(x) Hàm ng c c a hàm tangượ ủ
atan2(x,y) Hàm ng c tang c a th ng s ph n th cượ ủ ươ ố ầ ự
x chia cho ph n th c yầ ự
atanh(x) Hàm ng c c a hàm hypepoltangượ ủ
cos(x), sin(x), tan(x), cosh(x), sinh(x),
tanh(x)
log(x) Logarit t nhiênự
log10(x) Logarit c s 10ơ ố
exp(x) e^x
sqrt(x) Căn b c 2 c a xậ ủ
fix(x) X p x 0ấ ỉ
ceil(x) X p x dấ ỉ ương vô cùng
floor(x) X p x âm vô cùngấ ỉ
gdc(x,y) Ư c s chung l n nh t c a 2 s nguyên x,yớ ố ớ ấ ủ ố
lcm(x,y) B i s chung nh nh t c a hai s nguyênộ ố ỏ ấ ủ ố
x,y
rem(x,y) Ph n dầ ư c a phép chia x cho yủ
round(x) Ph n nguyên c a xầ ủ
sign(x) Tr v d u c a xả ề ấ ủ
Bài t pậ
1. Nh p d li u t file *.txt có n i dung nh b ng sau:ậ ữ ệ ừ ộ ư ả
19
a. Tính các giá tr :ị
A
A
A
C1000
C1000
x
+
−
=
A
A
x
X1
1
ln2a
−
−
=
b) Vi t M-file chuy n m ng v và Cế ể ả
A
thành 1 m ng s ph cả ố ứ
‘c’ v i các ph n t c t v là ph n th c, các ph n t t ng ngớ ầ ử ộ ầ ự ầ ử ươ ứ
ph n Cầ
A
là ph n oầ ả
c) Th c hi n các l nh ự ệ ệ
real(c)
imag(c)
abs(c)
angle(c)
4. Qu n lý ma tr n d li uả ậ ữ ệ
Matlab làm vi c v i các đ i l ng vô h ng, vect , và maệ ớ ạ ượ ướ ơ
tr n. Đ i l ng vô h ng ch đ n gi n là ma tr n 1x1, vàậ ạ ượ ướ ỉ ơ ả ậ
vect chính là ma tr n 1 c t ho c 1 dòng. T t c các d ng d li u này Matlab ki m soátơ ậ ộ ặ ấ ả ạ ữ ệ ể
d i d ng ma tr n.ướ ạ ậ
Ph n này s gi i thi u các thao tác và các hàm c b n v i ma tr n.ầ ẽ ớ ệ ơ ả ớ ậ
4.1. Ma tr n 1 chi uậ ề
4.1.1. Ma tr n hàngậ
Đ tìm hi u cách thi t l p và x lý d li u ma tr n 1 chi u chúng ta xét ví d :ể ể ế ậ ử ữ ệ ậ ề ụ
VD2: Trong quá trình phân tích Amoni theo ph ng pháp quang h c chúng ta thu đ cươ ọ ượ
d li u v đ ng chu n nh sau:ữ ệ ề ườ ẩ ư
N ng đ (ppm)ồ ộ 0.4 0.8 1.2 1.6 2
Đ h p th ộ ấ ụ 0.125 0.220 0.309 0.399 0.497
Hãy v đ th .ẽ ồ ị
Chúng ta c n 2 bi n d i d ng 2 ma tr n hàng đ qu n lý d li u c a n ng đ và đầ ế ướ ạ ậ ể ả ữ ệ ủ ồ ộ ộ
h p th . D li u n ng đ là d li u có quy lu t do đó chúng ta s d ng l nh sau:ấ ụ ữ ệ ồ ộ ữ ệ ậ ử ụ ệ
>>nd=linspace(0.4,2,5)
nd =
0.4000 0.8000 1.2000 1.6000
2.0000
>>ht=[0.125 0.220 0.309 0.399 0.497]
ht =
0.1250 0.2200 0.3090 0.3990
0.4970
>>plot(ht,nd)
>>xlabel(‘do hap thu’)
>>ylabel(‘nong do’)
V C
A
1,5 10
2,5 50
4,0 100
6,5 200
20 500
20
linspace là câu l nh t o ma tr n hàng cú pháp nh sau ệ ạ ậ ư linspace(a,b,c) trong đó a là giá
tr đ u, b là giá tr cu i và c là s giá tr n m trong đo n ị ầ ị ố ố ị ằ ạ [a, b]
D li u v đ h p th không có quy lu t do đó chúng ta ph i nh p t ng giá tr , khiữ ệ ề ộ ấ ụ ậ ả ậ ừ ị
chúng ta nh p d li u ph i chú ý gi a các giá tr ph i cách nhau m t d u cách ho c d uậ ữ ệ ả ữ ị ả ộ ấ ặ ấ
‘,’, các giá tr ph i n m trong d u ngo c vuông [ ]:ị ả ằ ấ ặ
Ngoài 2 cách t o ma tr n hàng nh trên chúng ta có th t o các cách sau:ạ ậ ư ể ạ
* T o ma tr n hàng mà các ph n t liên ti p cách nhau 1 đ n vạ ậ ầ ử ế ơ ị
>>x=0.4:6
x =
0.4000 1.4000 2.4000 3.4000 4.4000 5.4000
* T o ma tr n hàng mà các ph n t liên ti p cách nhau m t giá tr xác đ nhạ ậ ầ ử ế ộ ị ị
>> x=0.1:0.4:2
x =
0.1000 0.5000 0.9000 1.3000 1.7000
* Chúng ta có th s d ng các phép toán trong t o ma tr nể ử ụ ạ ậ
>> x=(0.1:0.4:2)*sin(pi/4)
x =
0.0707 0.3536 0.6364 0.9192 1.2021
* T o ma tr n hàng theo hàm logaritạ ậ
>> x=logspace(1, 3, 3)
x =
10 100 1000
T o ma tr n hàng t 10ạ ậ ừ
1
đ n 10ế
3
ch a 3 giá tr .ứ ị
4.1.2. Ma tr n c tậ ộ
Khi nh p m t ma tr n hang gi a các d li u trong ma tr n ta s d ng d u cách ho cậ ộ ậ ữ ữ ệ ậ ử ụ ấ ặ
d u ph y, đ nh p 1 ma tr n c t chúng ta phân cách d li u b ng d u ‘;’ ví d :ấ ẩ ể ậ ậ ộ ữ ệ ằ ấ ụ
>> b=[1;2;3]
b =
1
2
3
Ngoài ra chúng ta có th dùng toán t chuy n v đ chuy n t ma tr n hàng thành maể ử ể ị ể ể ừ ậ
tr n c t:ậ ộ
>>c=x’
c =
10
100
1000
>>c=x.’
c=
10
21
100
1000
Chúng ta có hai phép toán chuy n v là (ể ị ’) và (.’) hai phép chuy n v này ch khác nhauể ị ỉ
khi d li u là s ph c. Toán t (.’) ch đ n gi n là chuy n v ma tr n, còn toán t (‘)ữ ệ ố ứ ử ỉ ơ ả ể ị ậ ử
chuy n c các s ph c trong ma tr n ngu n thành s ph c liên h p:ể ả ố ứ ậ ồ ố ứ ợ
>>d=c+b*i
d =
10 + 1i
100 + 2i
1000 + 3i
>> e=d'
e =
10 - 1i 100 - 2i 1000 - 3i
>> e=d.'
f =
10 + 1i 100 + 2i 1000 + 3i
4.2. Ma tr n nhi u chi uậ ề ề
Khi nh p m t ma tr n nhi u chi u ngoài vi c nh p d li u t file chúng ta có thậ ộ ậ ề ề ệ ậ ữ ệ ừ ể
nh p d li u t bàn phím. Trong chúng ta ph i chú ý gi a các d li u trong m t hàngậ ữ ệ ừ ả ữ ữ ệ ộ
ph i cách nhau m t d u ‘,’ ho c d u cách, gi a các hàng ph i cách nhau b i d u ‘;’ả ộ ấ ặ ấ ữ ả ở ấ
ho c enter.ặ
>>g=[1 2 3;4 5 6; 7 8 9]
g =
1 2 3
4 5 6
7 8 9
>>g=[1 2 3
4 5 6
7 8 9]
g =
1 2 3
4 5 6
7 8 9
Matlab cung c p 2 hàm cho phép g i ma tr n ch g m các ph n t 0 ho c 1:ấ ọ ậ ỉ ồ ầ ử ặ
>>h=ones(3,2)
h =
1 1
1 1
1 1
>> k=zeros(3,4)
k =
22
0 0 0 0
0 0 0 0
0 0 0 0
Ta cũng có th t o ma tr n 0 hay 1 theo kích th c ma tr n khác:ể ạ ậ ướ ậ
>>m=ones(size(g))
m =
1 1 1
1 1 1
1 1 1
V m t cú pháp khi ta vi t ones(n) hay zeros(n) nghĩa là t o ma tr n vuông n chi uề ặ ế ạ ậ ề
còn khi vi t ones(n,m) hay zeros(n,m) nghĩa là t o ma tr n n hàng m c t.ế ạ ậ ộ
4.3. Các phép toán trong ma tr nậ
* Nhân ma tr nậ
.* Nhân ma tr n theo t ng v trí t ng ng hai ma tr nậ ừ ị ươ ứ ậ
^ Lũy th a ma tr nừ ậ
.^ Lũy th ma tr n theo t ng v trí t ng ng hai ma tr nừ ậ ừ ị ươ ứ ậ
\ Chia trái ma tr nậ
/ Chia ph i ma tr nả ậ
./ and .\ Chia ma tr n theo t ng v trí t ng ng hai ma tr nậ ừ ị ươ ứ ậ
' Chuy n v chuy n liên h pể ị ể ợ
.' Chuy n v không chuy n liên h pể ị ể ợ
Đ hi u rõ h n gi a phép toán s d ng d u (.) và không s d ng ta hãy xét ví d sauể ể ơ ữ ử ụ ấ ử ụ ụ
>> n
n =
2 2 2
2 2 2
2 2 2
>> g
g =
1 2 3
4 5 6
7 8 9
>> h=n.*g
h =
2 4 6
8 10 12
14 16 18
>>k=n*g
k =
24 30 36
24 30 36
24 30 36
23
Các phép toán s d ng d u ‘.’ th c hi n trên các v trí t ng ng c a hai ma tr nử ụ ấ ự ệ ị ươ ứ ủ ậ
h(i,j)=n(i,j)*g(i,j) trong đó i ch v trí hàng, j ch v trí c t.ỉ ị ỉ ị ộ
Các phép toán không s d ng d u ‘.’ tuân theo quy đ nh toán h c v đ nh th c maử ụ ấ ị ọ ề ị ứ
tr n. ậ
∑
=
=
3:1
j)g(x,*x)n(i,j)h(i,
x
4.5. Đ a ch d li u trong ma tr nị ỉ ữ ệ ậ
Khi truy xu t t i m t ph n t trong ma tr n chúng ta s d ng ch s hàng và ch sấ ớ ộ ầ ử ậ ử ụ ỉ ố ỉ ố
c t:ộ
>>h(2,2)
ans=
10
>>h(2,3)=10 % gán d li u hàng 2 c t 3 c a ma tr n h b ng 10ữ ệ ở ộ ủ ậ ằ
h =
2 4 6
8 10 10
14 16 18
>>h(3,:)=10 % gán t t c các giá tr hàng th 3 b ng 10, d u ‘:’ ch t t c cácấ ả ị ứ ằ ấ ỉ ấ ả
hàng ho c c tặ ộ
h =
2 4 6
8 10 10
10 10 10
>>h(:,4)=0 % tăng thêm c t th 4 b ng 0ộ ứ ằ
h =
2 4 6 0
8 10 10 0
10 10 10 0
>> h(:,3)=[] % b t c t th 3 c a ma tr n hớ ộ ứ ủ ậ
h =
2 4 0
8 10 0
10 10 0
>> x
x =
10 100 1000
>> h(2,:)=x % thay hàng 2 b ng ma tr n hàng xằ ậ
h =
2 4 0
10 100 1000
10 10 0
24
Chúng ta có quy đ nh chung v đ a ch c a ma tr n nh sau:ị ề ị ỉ ủ ậ ư
h(m,n) Ma tr n con 1 ph n t hàng m c t n c a ma tr n hậ ầ ử ở ộ ủ ậ
h(:,n) Ma tr n con là ma tr n c t ch a các ph n t c t n c a maậ ậ ộ ứ ầ ử ở ộ ủ
tr n hậ
h(m,:) Ma tr n con là ma tr n hàng ch a các ph n t hàng m c aậ ậ ứ ầ ử ở ủ
ma tr n hậ
h(:) Ma tr n c t ch a t t c các ph n t trong ma tr n h b ng cách n i liên ti p cácậ ộ ứ ấ ả ầ ử ậ ằ ố ế
c t l i v i nhauộ ạ ớ
h(m) Ch ph n t th m trong ma tr n h theo cách đ m liên ti p t trên xu ngỉ ầ ử ứ ậ ế ế ừ ố
d i, t trái qua ph iướ ừ ả
>>h(8)
ans =
1000
4.6. Các hàm thông d ngụ
p=find(h) Cho k t qu là ma tr n c t các ch s c a d li u l n h n 1ế ả ậ ộ ỉ ố ủ ữ ệ ớ ơ
trong ma tr n hậ
[m,n]=find(h) Cho k t qu là hai ma tr n c t m ch a các ch s hàng, n ch aế ả ậ ộ ứ ỉ ố ứ
các ch s c t c a các ph n t l n h n 1 trong ma tr n h. Ta cóỉ ố ộ ủ ầ ử ớ ơ ậ
th đ a thêm các hàm toán vào các d li u trong ma tr n h nh :ể ư ữ ệ ậ ư
find(h>34), find(sin(h)>0.5)
isequal(g,h) Cho giá tr là 1 n u hai ma tr n gi ng nhau, là 0 n u s hàng, sị ế ậ ố ế ố ố
c t hay có 1 ph n t khác nhauộ ầ ử
ismember(g,h) Cho k t qu là ma tr n có kích th c b ng ma tr n g. V i m iế ả ậ ướ ằ ậ ớ ỗ
ph n t trong ma tr n g Malab tìm ki m trong ma tr n h n u cóầ ử ậ ế ậ ế
ph n t có giá tr b ng thì tr k t qu 1, n u không có thì tr giáầ ử ị ằ ả ế ả ế ả
tr 0.ị
intersect(g(:),h(:)) Tr k t qu là ma tr n c t các ph n t b ng nhau đ c s pả ế ả ậ ộ ầ ử ằ ượ ắ
x p t nh đ n l nế ừ ỏ ế ớ
setdiff(g(:),h(:)) Tr k t qu là ma tr n c t các ph n t có trong g mà không cóả ế ả ậ ộ ầ ử
trong h, x p x p t nh đ n l n ắ ế ừ ỏ ế ớ
setxor(g(:),h(:)) Tr k t qu là ma tr n c t các ph n t không ph i là ph n tả ế ả ậ ộ ầ ử ả ầ ử
chung c a g và h ủ
union(g(:),h(:)) Tr k t qu là ma tr n c t t t c các ph n t có trong g ho c hả ế ả ậ ộ ấ ả ầ ử ặ
size(g) Tr k t qu là ma tr n hàng v i hai d li u là s hàng và sả ế ả ậ ớ ữ ệ ố ố
c t ma tr n gộ ậ
size(g,1) Tr k t qu là s hangả ế ả ố
size(g,2) Tr k t qu là s c tả ế ả ố ộ
length(g) Tr k t qu là s chi u l n h nả ế ả ố ề ớ ơ
1 4 7
2 5 8
3 6 9
25
Hình: 12: Th t trong maứ ự
tr n ậ