Professional Documents
Culture Documents
N®i dung
1 Giái thi¾u Matlab
2 Bieu thúc Matlab
Bien
So
Các toán tu
3 Các hàm
4 Vector
5 Đa
thúc
Ma tr¾n
Nh¼p ma
tr¼n Ghép
6 noi
7
Xóa hàng và
c¼t
8
M¼t so l¼nh
xu lý ma tr¼n
Cau trúc (Structures)
Mang(SAMI-HUST)
te bào (Cell Arrays) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 2 / 66
Giói thi¼u Matlab
Matlab là gì
MatLab (MATrix LABoratory) là m¼t môi trưòng phan mem (problem-solving
environment - PSE) trong toán hoc tính toán.
MatLab đưoc phát trien vào cuoi nhung năm 70 boi Cleve Moler (Stanford) vói
mnc đích giúp sinh viên thnc hi¼n các tính toán so mà không can phai hoc m¼t
ngôn ngu l¼p trình b¼c thap, ví dn Fortran.
Đưoc thiet ke boi công ty MathWorks là m¼t ngôn ngu l¼p trình b¼c cao chuyên su
dnng cho các tính toán ky thu¼t, đ¼c bi¼t là các bài toán có dang ma tr¼n ho¼c
vector. MatLab tích hop các tính toán, đo hoa và l¼p trình trong m¼t môi trưòng
thân thi¼n, cho phép the hi¼n các bài toán và nghi¼m dưói dang các ký hi¼u toán
hoc quen thu¼c.
MatLab là m¼t h¼ tương tác, có các thành phan du li¼u cơ ban là m¼t mang mà
không can khai báo trưóc so chieu.
MatLab đã trai qua nhieu năm phát trien vói sn đóng góp cua nhieu chuyên gia.
Trong trưòng đai hoc, nó là m¼t công cn chuan cho các khóa hoc ve toán, ky thu¼t
và khoa hoc tù mo đau đen nâng cao. Trong công nghi¼p, MatLab là m¼t công cn
huu ích cho vi¼c nghiên cúu, phát trien và phân tích các san pham chat
lưong cao.
Matlab là gì
MatLab (MATrix LABoratory) là m¼t môi trưòng phan mem (problem-solving
environment - PSE) trong toán hoc tính toán.
MatLab đưoc phát trien vào cuoi nhung năm 70 boi Cleve Moler (Stanford) vói
mnc đích giúp sinh viên thnc hi¼n các tính toán so mà không can phai hoc m¼t
ngôn ngu l¼p trình b¼c thap, ví dn Fortran.
Đưoc thiet ke boi công ty MathWorks là m¼t ngôn ngu l¼p trình b¼c cao chuyên su
dnng cho các tính toán ky thu¼t, đ¼c bi¼t là các bài toán có dang ma tr¼n ho¼c
vector. MatLab tích hop các tính toán, đo hoa và l¼p trình trong m¼t môi trưòng
thân thi¼n, cho phép the hi¼n các bài toán và nghi¼m dưói dang các ký hi¼u toán
hoc quen thu¼c.
MatLab là m¼t h¼ tương tác, có các thành phan du li¼u cơ ban là m¼t mang mà
không can khai báo trưóc so chieu.
MatLab đã trai qua nhieu năm phát trien vói sn đóng góp cua nhieu chuyên gia.
Trong trưòng đai hoc, nó là m¼t công cn chuan cho các khóa hoc ve toán, ky thu¼t
và khoa hoc tù mo đau đen nâng cao. Trong công nghi¼p, MatLab là m¼t công cn
huu ích cho vi¼c nghiên cúu, phát trien và phân tích các san pham chat lưong cao.
Matlab là gì
MatLab (MATrix LABoratory) là m¼t môi trưòng phan mem (problem-solving
environment - PSE) trong toán hoc tính toán.
MatLab đưoc phát trien vào cuoi nhung năm 70 boi Cleve Moler (Stanford) vói
mnc đích giúp sinh viên thnc hi¼n các tính toán so mà không can phai hoc m¼t
ngôn ngu l¼p trình b¼c thap, ví dn Fortran.
Đưoc thiet ke boi công ty MathWorks là m¼t ngôn ngu l¼p trình b¼c cao chuyên su
dnng cho các tính toán ky thu¼t, đ¼c bi¼t là các bài toán có dang ma tr¼n ho¼c
vector. MatLab tích hop các tính toán, đo hoa và l¼p trình trong m¼t môi trưòng
thân thi¼n, cho phép the hi¼n các bài toán và nghi¼m dưói dang các ký hi¼u toán
hoc quen thu¼c.
MatLab là m¼t h¼ tương tác, có các thành phan du li¼u cơ ban là m¼t mang mà
không can khai báo trưóc so chieu.
MatLab đã trai qua nhieu năm phát trien vói sn đóng góp cua nhieu chuyên gia.
Trong trưòng đai hoc, nó là m¼t công cn chuan cho các khóa hoc ve toán, ky thu¼t
và khoa hoc tù mo đau đen nâng cao. Trong công nghi¼p, MatLab là m¼t công cn
huu ích cho vi¼c nghiên cúu, phát trien và phân tích các san pham chat lưong cao.
Matlab là gì
MatLab (MATrix LABoratory) là m¼t môi trưòng phan mem (problem-solving
environment - PSE) trong toán hoc tính toán.
MatLab đưoc phát trien vào cuoi nhung năm 70 boi Cleve Moler (Stanford) vói
mnc đích giúp sinh viên thnc hi¼n các tính toán so mà không can phai hoc m¼t
ngôn ngu l¼p trình b¼c thap, ví dn Fortran.
Đưoc thiet ke boi công ty MathWorks là m¼t ngôn ngu l¼p trình b¼c cao chuyên su
dnng cho các tính toán ky thu¼t, đ¼c bi¼t là các bài toán có dang ma tr¼n ho¼c
vector. MatLab tích hop các tính toán, đo hoa và l¼p trình trong m¼t môi trưòng
thân thi¼n, cho phép the hi¼n các bài toán và nghi¼m dưói dang các ký hi¼u toán
hoc quen thu¼c.
MatLab là m¼t h¼ tương tác, có các thành phan du li¼u cơ ban là m¼t mang mà
không can khai báo trưóc so chieu.
MatLab đã trai qua nhieu năm phát trien vói sn đóng góp cua nhieu chuyên gia.
Trong trưòng đai hoc, nó là m¼t công cn chuan cho các khóa hoc ve toán, ky thu¼t
và khoa hoc tù mo đau đen nâng cao. Trong công nghi¼p, MatLab là m¼t công cn
huu ích cho vi¼c nghiên cúu, phát trien và phân tích các san pham chat lưong cao.
Matlab là gì
MatLab (MATrix LABoratory) là m¼t môi trưòng phan mem (problem-solving
environment - PSE) trong toán hoc tính toán.
MatLab đưoc phát trien vào cuoi nhung năm 70 boi Cleve Moler (Stanford) vói
mnc đích giúp sinh viên thnc hi¼n các tính toán so mà không can phai hoc m¼t
ngôn ngu l¼p trình b¼c thap, ví dn Fortran.
Đưoc thiet ke boi công ty MathWorks là m¼t ngôn ngu l¼p trình b¼c cao chuyên su
dnng cho các tính toán ky thu¼t, đ¼c bi¼t là các bài toán có dang ma tr¼n ho¼c
vector. MatLab tích hop các tính toán, đo hoa và l¼p trình trong m¼t môi trưòng
thân thi¼n, cho phép the hi¼n các bài toán và nghi¼m dưói dang các ký hi¼u toán
hoc quen thu¼c.
MatLab là m¼t h¼ tương tác, có các thành phan du li¼u cơ ban là m¼t mang mà
không can khai báo trưóc so chieu.
MatLab đã trai qua nhieu năm phát trien vói sn đóng góp cua nhieu chuyên gia.
Trong trưòng đai hoc, nó là m¼t công cn chuan cho các khóa hoc ve toán, ky thu¼t
và khoa hoc tù mo đau đen nâng cao. Trong công nghi¼p, MatLab là m¼t công cn
huu ích cho vi¼c nghiên cúu, phát trien và phân tích các san pham chat lưong cao.
Matlab là gì
Matlab là gì
Matlab là gì
Matlab là gì
Matlab là gì
Matlab là gì
Matlab là gì
Matlab là gì
Matlab là gì
Nét đ¼c trưng cua MatLab là nó cung cap m¼t ho các Toolboxes , cho phép ngưòi dùng có
the hoc và áp dnng trong các ky thu¼t chuyên ngành. Toolboxes là t¼p hop cua
các hàm (”M-files") cho phép mo r¼ng môi trưòng MatLab đe giai m¼t lóp các bài
toán trong
Xu lý tín hi¼u (signal processing)
Các h¼ đieu khien (control systems)
Mang nơ-ron (neural networks)
Logic mò (fuzzy logic)
Sóng nho (wavelets)
Mô phong (simulation)
...
Matlab là gì
Nét đ¼c trưng cua MatLab là nó cung cap m¼t ho các Toolboxes , cho phép ngưòi dùng có
the hoc và áp dnng trong các ky thu¼t chuyên ngành. Toolboxes là t¼p hop cua
các hàm (”M-files") cho phép mo r¼ng môi trưòng MatLab đe giai m¼t lóp các bài
toán trong
Xu lý tín hi¼u (signal processing)
Các h¼ đieu khien (control systems)
Mang nơ-ron (neural networks)
Logic mò (fuzzy logic)
Sóng nho (wavelets)
Mô phong (simulation)
...
Matlab là gì
Nét đ¼c trưng cua MatLab là nó cung cap m¼t ho các Toolboxes , cho phép ngưòi dùng có
the hoc và áp dnng trong các ky thu¼t chuyên ngành. Toolboxes là t¼p hop cua
các hàm (”M-files") cho phép mo r¼ng môi trưòng MatLab đe giai m¼t lóp các bài
toán trong
Xu lý tín hi¼u (signal processing)
Các h¼ đieu khien (control systems)
Mang nơ-ron (neural networks)
Logic mò (fuzzy logic)
Sóng nho (wavelets)
Mô phong (simulation)
...
Matlab là gì
Nét đ¼c trưng cua MatLab là nó cung cap m¼t ho các Toolboxes , cho phép ngưòi dùng có
the hoc và áp dnng trong các ky thu¼t chuyên ngành. Toolboxes là t¼p hop cua
các hàm (”M-files") cho phép mo r¼ng môi trưòng MatLab đe giai m¼t lóp các bài
toán trong
Xu lý tín hi¼u (signal processing)
Các h¼ đieu khien (control systems)
Mang nơ-ron (neural networks)
Logic mò (fuzzy logic)
Sóng nho (wavelets)
Mô phong (simulation)
...
Matlab là gì
Nét đ¼c trưng cua MatLab là nó cung cap m¼t ho các Toolboxes , cho phép ngưòi dùng có
the hoc và áp dnng trong các ky thu¼t chuyên ngành. Toolboxes là t¼p hop cua
các hàm (”M-files") cho phép mo r¼ng môi trưòng MatLab đe giai m¼t lóp các bài
toán trong
Xu lý tín hi¼u (signal processing)
Các h¼ đieu khien (control systems)
Mang nơ-ron (neural networks)
Logic mò (fuzzy logic)
Sóng nho (wavelets)
Mô phong (simulation)
...
Matlab là gì
Nét đ¼c trưng cua MatLab là nó cung cap m¼t ho các Toolboxes , cho phép ngưòi dùng có
the hoc và áp dnng trong các ky thu¼t chuyên ngành. Toolboxes là t¼p hop cua
các hàm (”M-files") cho phép mo r¼ng môi trưòng MatLab đe giai m¼t lóp các bài
toán trong
Xu lý tín hi¼u (signal processing)
Các h¼ đieu khien (control systems)
Mang nơ-ron (neural networks)
Logic mò (fuzzy logic)
Sóng nho (wavelets)
Mô phong (simulation)
...
Matlab là gì
Nét đ¼c trưng cua MatLab là nó cung cap m¼t ho các Toolboxes , cho phép ngưòi dùng có
the hoc và áp dnng trong các ky thu¼t chuyên ngành. Toolboxes là t¼p hop cua
các hàm (”M-files") cho phép mo r¼ng môi trưòng MatLab đe giai m¼t lóp các bài
toán trong
Xu lý tín hi¼u (signal processing)
Các h¼ đieu khien (control systems)
Mang nơ-ron (neural networks)
Logic mò (fuzzy logic)
Sóng nho (wavelets)
Mô phong (simulation)
...
Matlab là gì
Nét đ¼c trưng cua MatLab là nó cung cap m¼t ho các Toolboxes , cho phép ngưòi dùng có
the hoc và áp dnng trong các ky thu¼t chuyên ngành. Toolboxes là t¼p hop cua
các hàm (”M-files") cho phép mo r¼ng môi trưòng MatLab đe giai m¼t lóp các bài
toán trong
Xu lý tín hi¼u (signal processing)
Các h¼ đieu khien (control systems)
Mang nơ-ron (neural networks)
Logic mò (fuzzy logic)
Sóng nho (wavelets)
Mô phong (simulation)
...
N®i dung
1 Giái thi¾u Matlab
2 Bieu thúc Matlab
Bien
So
Các toán tu
3 Các hàm
4 Vector
5 Đa
thúc
Ma tr¾n
Nh¼p ma
tr¼n Ghép
6 noi
7
Xóa hàng và
c¼t
8
M¼t so l¼nh
xu lý ma tr¼n
Cau trúc (Structures)
Mang(SAMI-HUST)
te bào (Cell Arrays) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 6 / 66
Bieu thúc Matlab
Bien
Bien (Variables) (1)
MatLab không yêu cau phai khai báo bien cũng như so chieu. Trong MatLab , m¼t
bien đưoc khai báo và khoi tao thông qua l¼nh gán, ví dn:
>> num = 98
num =
98
>> pi =
3.1415926535
897931
pi =
3.1416
>> msg = ’Hello World’ msg
=
Hello World
Tên bien bao gom các ký tn chu, so và ký hi¼u gach dưói (_). Tên bien phai bat đau
bang ký tn chu và có đ¼ dài tùy thích. Tuy nhiên, MatLab chi su dnng N ký tn đau
tiên đưoc tính bang l¼nh
>> N = namelengthmax
N=
(SAMI-HUST) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 7 / 66
Bieu thúc Matlab
Bien
Bien (Variables)(2)
Ví dn các kieu tên bien hop l¼: arg1, no_name, vars, Vars. Khi tên bien không hop l¼,
se xuat hi¼n dòng thông báo lői:
>> 4rum = ’Forum’
??? 4rum = ’Forum’
|
Error: Unexpected matlab expression.
Ta có the kiem tra tính hop l¼ cua tên bien bang l¼nh isvarname
>> isvarname(’4u’) ans
=
0
MatLab phân bi¼t chu
hoa và chu thưòng.
Do đó A và a là các
bien khác nhau
Khi MatLab g¼p m¼t tên bien mói, nó tn đ¼ng tao ra và lưu trong b¼ nhó. Neu bien
đó đã ton tai, MatLab se thay đoi giá trà và neu can, cap phát b¼ nhó mói.
(SAMI-HUST) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 8 / 66
Bieu thúc Matlab
So
So (Numbers)
MatLab su dnng ký hi¼u th¼p phân theo qui ưóc vói so chu so tùy chon và các dau
+,- cho các so. Ký hi¼u khoa hoc su dnng chu cái e cho lũy thùa cua 10. So phúc
su dnng các chu i ho¼c j cho đơn và ao. M¼t so ví dn
3 -99 0.0001
9.6397238 1.60210e-20 6.02252e23
1i -3.14159j 3e5i
Tat ca các so đưoc lưu tru bên trong bang cách su dnng long format theo chuan dau
cham đ¼ng IEEE (Institute of Electrical and Electronics Engineers). Các so dưói
dang dau cham đ¼ng có đ¼ chính xác huu han vói 16 chu so th¼p phân có nghĩa và
. Σ
nam trong khoang 10 − 3 0 8 , 10+308 .
Các bieu thúc MatLab su dnng các toán tu quen thu¼c theo thú tn ưu tiên (tù dưói lên
trên).
MatLab cung cap m¼t so lưong rat phong phú các hàm toán hoc sơ cap
(elementary mathematical functions), ví dn abs, sqrt, exp, sin.
Phép lay căn b¼c hai hay logarit cua so âm se tn đ¼ng cho m¼t giá trà phúc thích
hop.
MatLab cũng đong thòi cung cap rat nhieu các hàm toán hoc nâng cao (advanced
mathematical functions), bao gom các hàm Bessel và gamma. Hau het các hàm
này chap nh¼n đoi so phúc.
Đe hien thà danh sách các hàm toán hoc sơ cap, nh¼p vào
>> help elfun
Tương tn đoi vói danh sách các hàm toán hoc nâng cao và hàm xu lý ma tr¼n
>> help specfun
>> help elmat
pi 3.14159265. . .
i,j √
Đơn và ao, − 1
eps
Sai so tương đoi dang dau cham đ¼ng, ε = 2.2204e − 016
realmin
So thnc nho nhat, 2.2251e − 308
realmax So thnc lón nhat, 1.7977e + 308
Inf ∞
NaN Not-a-number
inf đưoc tao boi phép chia m¼t so khác 0 cho 0, ho¼c vi¼c tính giá trà cua m¼t
bieu thúc toán hoc đúng đan mà bà tràn b¼ nhó, túc là vưot quá realmax.
0
NaN đưoc tao ra khi co gang tính giá trà cua m¼t bieu thúc dang ho¼c ∞ −
0
∞.
Ta có the gán cho các hang giá trà mói, ví dn
>> eps = 1.e-6
và su dnng giá trà này cho m¼t dãy tính toán. Giá trà ban đau se đưoc phnc hoi
vói
>> clear eps
N®i dung
1 Giái thi¾u Matlab
2 Bieu thúc Matlab
Bien
So
Các toán tu
3 Các hàm
4 Vector
5 Đa
thúc
Ma tr¾n
Nh¼p ma
tr¼n Ghép
6 noi
7
Xóa hàng và
c¼t
8
M¼t so l¼nh
xu lý ma tr¼n
Cau trúc (Structures)
Mang(SAMI-HUST)
te bào (Cell Arrays) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 14 / 66
Vector
Vector
Vector là m¼t ma tr¼n có m¼t hàng ho¼c m¼t c¼t. Đe khoi tao vector hàng chúa các giá
trà ròi rac, các phan tu trong vector phai nam trong c¼p ngo¼c vuông [] và đưoc ngăn
cách boi dau phay " ," ho¼c khoang trang .
>> arr1 = [1 2 3]
arr1 =
1 2 3
>> arr2 = [0,-5]
arr2 =
0 -
5 = [arr1 arr2] arr3 =
>> arr3
1 2
3 0 -5
Vector
Đe khoi tao vector hàng chúa các giá trà liên tiep ho¼c cách nhau m¼t giá trà nhat đành
(bưóc nhay), MatLab su dnng toán tu ":", đong thòi giá trà đau và cuoi cua vector không
can thiet phai đ¼t trong dau ngo¼c vuông [].
>> emp_arr = []
emp_arr =
[]
Vector
Ngưoc lai, đe tao vector c¼t, ta can chuyen và vector hàng bang cách dùng toán tu " ’ "
ho¼c dùng dau " ; " đe ngăn cách các phan tu
>> col_arr=[1:3]’
col_arr =
1
2
3
>> col_arr=[1;2;3]
col_arr =
1
2
3
Vector
Hàm linspace
Cú pháp
y = linspace(a,b)
y = linspace(a,b,n)
Mô ta
Hàm linspace tao ra m¼t vector vói khoang cách tuyen tính. Nó tương tn như
toán tu hai cham ":", nhưng xác đành trưóc so điem chia n.
y = linspace(a,b) tao ra m¼t vector hàng y vói 100 điem cách đeu bao gom ca
a và b.
y = linspace(a,b,n) tao ra m¼t vector hàng y vói n điem cách đeu bao gom ca
a và b. Vói n < 2, hàm linspace tra ve b.
Vector
Hàm logspace
Cú pháp
y = logspace(a,b)
y = logspace(a,b,n) y =
logspace(a,pi)
Mô ta
Hàm linspace tao
ra m¼t vector vói
khoang cách
logarit.
y = logspace(a,b)
tao ra m¼t vector
hàng y gom 50
điem trong
khoang 10 a và
10b .
(SAMI-HUST) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 19 / 66
Vector
Vector
Chi so
Giá trà cua m¼t phan tu tai m¼t và trí bat kỳ trong vector đưoc truy xuat thông qua chi
so. Trong MatLab , chi so luôn bat đau tù 1 và có the là m¼t giá trà đơn ho¼c m¼t mang
Trích phan tu thú i: X(i)
Trích nhieu phan tu: X([danh sách các v% trí])
>> arr = 10:-1:0
arr =
10 9 8 7 6 5 4 3 2 1 0
>> arr(5)
ans =
6
>>
arr([7,8,11]
) 4 3 0
ans = m¼t phan tu trong vector, ta gán phan tu đó vói vector rőng:
Đe xóa
>> arr([2 5]) = []
arr =
10 8 7 5 4 3 2 1
(SAMI-HUST) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 20 / 66
Vector
Vector
Vector và bieu thúc logic
Bieu thúc logic cho phép truy xuat m¼t cách linh hoat đen các thành phan cua m¼t
vector hay ma tr¼n. Ví dn
Vector
Các hàm logic: all, any và find
any: Kiem tra xem có ton tai m¼t phan tu cua vector thoa mãn đieu ki¼n nào đó
không. Neu có thì tra ve 1, ngưoc lai là 0. Ví dn
>> x=[-1 2 3];
>> any(x>0)
ans =
1
all: Kiem tra xem tat ca các phan tu cua vector thoa mãn đieu ki¼n nào đó
không. Ví dn
>> all(x<0)
ans =
0
find: tra ve
các chi so
cua m¼t
vector thoa
mãn m¼t
đieu ki¼n nào
đó. Ví dn
5
(SAMI-HUST) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 22 / 66
Vector
Vector
Các phép toán cơ ban trên vector
N®i dung
1 Giái thi¾u Matlab
2 Bieu thúc Matlab
Bien
So
Các toán tu
3 Các hàm
4 Vector
5 Đa
thúc
Ma tr¾n
Nh¼p ma
tr¼n Ghép
6 noi
7
Xóa hàng và
c¼t
8
M¼t so l¼nh
xu lý ma tr¼n
Cau trúc (Structures)
Mang(SAMI-HUST)
te bào (Cell Arrays) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 24 / 66
Đa thúc
f (x) = a n x n + a n − 1 x n − 1 + · · · + a 1 x + a 0 n
f (x) = 2x 2 − 4x +
10 b¼c 2
f (x) = 6 b¼c 0
Trong MatLab , đa thúc đưoc bieu dien boi m¼t vector hàng có các thành phan
chính là các h¼ so. Vector trên phai chúa tat ca các h¼ so, ke ca h¼ so b¼c 0.
Ví dn 8x + 5 p=[8 5]
6x 2 − 150 h=[6 0 -150]
MatLab có the tính giá trà cua m¼t đa thúc tai điem x su dnng hàm
polyval(p,x)
trong đó
p là vector bieu dien đa thúc
x là m¼t so, bien ho¼c bieu thúc
Ví dn
>> p=[5 6 -7 3];
>> x=2;
>> y=polyval(p,x) y
=
53
Nhac lai rang nghi¼m cua đa thúc là các giá trà cua bien sao cho giá trà cua đa
thúc tai đó bang 0
MatLab có the tìm các nghi¼m cua m¼t đa thúc bang l¼nh
r=roots(p)
trong đó
p là vector bieu dien đa thúc
r vector c¼t chúa các nghi¼m cua đa thúc
Ví dn
>> p=[1 -2 -3];
>> r=roots(p) r
=
3.0000
-1.0000
Cho trưóc các nghi¼m cua m¼t đa thúc, MatLab có the tính các h¼ so cua đa
thúc đó bang l¼nh
p=poly(r)
trong đó
r là vector hàng ho¼c c¼t chúa các nghi¼m cua đa thúc
p là vector hàng chúa các h¼ so
Ví dn
>> r=[-3;2];
>> p=poly(r)
p=
1 1 -6
f(x)=x^2+x-6
C®ng đa thúc
Đe c¼ng, trù hai vector trong MatLab các vector h¼ so can phai cùng kích cõ, do đó
vector có đ¼ dài ngan hơn phai thêm các phan tu 0
Ví dn
f1(x)=3x^6+15x^5-10x^3-3x^2+15x-40
f2(x)=3x^3-2x-6
>> p1=[3 15 0 -10 -3 15 -40];
>> p2=[0 0 0 3 0 -2 -6];
>> p=p1+p2
p=
3
15
-7
(SAMI-HUST) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 29 / 66
Đa thúc
Nhân đa thúc
Cú pháp
c=conv(a,b)
trong đó
a và b
là các
vector
h¼ so
cua
các đa
thúc
c là
vector
h¼ so
cua
tích
(SAMI-HUST) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 30 / 66
Đa thúc
Chia đa thúc
Cú pháp
[q,r]=deconv(u,v)
trong đó
u vector h¼ so
cua các đa
thúc bà chia
v vector h¼ so
cua các đa
thúc chia
q là vector h¼
so cua thương
r là vector h¼
so cua phan
dư
Ví dn
>> u=[1 -9 -10];
(SAMI-HUST) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 31 / 66
Đa thúc
-2
N®i dung
1 Giái thi¾u Matlab
2 Bieu thúc Matlab
Bien
So
Các toán tu
3 Các hàm
4 Vector
5 Đa
thúc
Ma tr¾n
Nh¼p ma
tr¼n Ghép
6 noi
7
Xóa hàng và
c¼t
8
M¼t so l¼nh
xu lý ma tr¼n
Cau trúc (Structures)
Mang(SAMI-HUST)
te bào (Cell Arrays) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 34 / 66
Ma tr¼n Nh¼p ma tr¼n
Khi nh¼p ma tr¼n trong môi trưòng dòng l¼nh ta phai tuân theo các qui đành sau:
Ngăn cách các phan tu cua ma tr¼n boi dau " ," hay khoang trang
Dùng dau " ; " đe ket thúc m¼t hàng
Bao các phan tu cua ma tr¼n boi c¼p dau [].
>> A = [ 16 3 2 13 ; 5 10 11 8 ; 9 6 7 12 ; 4 15 14 1] A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
>> sum(A)
ans =
34 34 34 34
nghĩa là nó lay tong các c¼t vì MatLab đưoc viet đe làm vi¼c vói c¼t. Muon lay tong cua
cua các hàng ta can chuyen và ma tr¼n
>> A’
ans =
16 5 9 4
3 10 6 15
2 11 7 14
13 8 12 1
Chú ý
Ma tr¼n a = [] là ma tr¼n rőng.
1 2
4 5
(SAMI-HUST) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 37 / 66
Ma tr¼n Nh¼p ma tr¼n
Kích thưác
Đe xác đành kích thưóc cua m¼t ma tr¼n ta dùng l¼nh length (tra ve kích thưóc lón
nhat) hay l¼nh size (so hàng và c¼t). Ví dn:
>> c = [1 2 3 4; 5 6 7 8];
>> length(c)
ans =
4
>> [m, n] = size(c) m =
2
n=
4
Các l¼nh tính kích thưóc cua ma tr¼n đưoc li¼t kê dưói bang sau:
whos Hien thà các bien trong không gian làm vi¼c
cùng kích cõ tương úng
s = size(A) Tra ve là vector hàng s, s(1)-so hàng và s(2)-so c¼t
[r,c] = size(A) Tra ve hai so r,c úng vói so hàng và so c¼t
r = size(A,1) Tra ve so hàng cua A
c = size(A,2) Tra ve so c¼t cua A
n = length(A) Tra ve max(size(A)) khi A khác []
Toán tu
Toán tu " : " là m¼t toán tu rat quan trong cua MatLab , nó xuat hi¼n o nhieu dang
khác nhau.
Ví dn
Bieu thúc
>> 1:10
cho ket qua là m¼t vector hàng chúa 10 so nguyên liên tiep tù 1 đen 10
ans = 1
2 3 4 5 6 7 8 9 10
và
>> A(3,:)
ans = 9
6 7 12
Viet B = A(:, [1 3 2 4]) se tao ra ma tr¼n B bang cách đoi thú tn các c¼t tù
[1 2 3 4] thành [1 3 2 4]
>> Z=zeros(2,4) Z
=
0 0 0 0
0 0 0 0
>> F=5*ones(3)
F=
5 5 5
5 5 5
5 5 5
>> R=randn(4)
R=
0.5377 0.3188 3.5784 0.7254
1.8339 -1.3077 2.7694 -0.0631
-2.2588 -0.4336 -1.3499 0.7147
0.8622 0.3426 3.0349 -0.2050
Hàm load
Hàm load đoc m¼t file văn ban chúa các du li¼u so. File văn ban phai đưoc to chúc như là
m¼t bang chu nh¼t cua các so, cách nhau boi các khoang trang , mői hàng trên m¼t dòng
và so phan tu trên mői hàng là như nhau. Ví dn, ta tao file matrix.dat có n¼i dung sau:
se đoc file và tao ra m¼t bien matrix chúa các phan tu như trên.
M-files
Ta có the tao ra các ma tr¼n bang cách su dnng các file văn ban chúa mã MatLab
(M-files). Su dnng trình soan thao Matlab Editor ho¼c m¼t trình soan thao bat kỳ tao ra
m¼t file chúa các l¼nh giong như dùng trong môi trưòng dòng l¼nh MatLab , sau đó lưu
file này dưói dang ”.m”. Ví dn, tao ra m¼t file chúa 5 dòng sau:
A = [ ...
16.0 3.0 2.0 13.0
5.0 10.0 11.0 8.0
9.0 6.0 7.0 12.0
4.0 15.0 14.0 1.0 ];
>> matrix
Ta có the ghép noi các ma tr¼n nho đe tao thành các ma tr¼n lón hơn. Ví dn
>> A=ones(3)
A=
1 1 1
1 1 1
1 1 1
>> B=[A A+3; A+4 A+6]
B=
1 1 1 4 4 4
1 1 1 4 4 4
1 1 1 4 4 4
5 5 5 7 7 7
5 5 5 7 7 7
5 5 5 7 7 7
Ta có the xóa hàng và c¼t cua ma tr¼n bang cách gán cho chúng giá trà []. Ví
dn
>> A=[1 2 3; 4 5 6; 7 8 9] A =
1 2 3
4 5 6
7 8 9
>> X=A;
>> X(:,2)=[]
X=
1 3
4 6
7 9
C¼ng X= A + B
Trù X= A - B
Nhâ X= A * B
n A.*B
nhân các
Chia phan tu
tương
úng vói
Lũy thùa nhau
X = A/B, khi đó X*A = B
Chuyen X = A\B, khi đó A*X = B
X=A./B chia các phan tu
và tương úng cho nhau.
(liên hop X = A^2
đoi vói X = A.^: lũy thùa tùng tù
ma tr¼n X=A’
phúc)
N®i dung
1 Giái thi¾u Matlab
2 Bieu thúc Matlab
Bien
So
Các toán tu
3 Các hàm
4 Vector
5 Đa
thúc
Ma tr¾n
Nh¼p ma
tr¼n Ghép
6 noi
7
Xóa hàng và
c¼t
8
M¼t so l¼nh
xu lý ma tr¼n
Cau trúc (Structures)
Mang(SAMI-HUST)
te bào (Cell Arrays) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 52 / 66
Cau trúc (Structures)
Cau trúc
>> s.y=1;
>> s.x=[1 1];
>> s.name=’abc’;
>> s
s=
y: 1
x: [1 1]
name: ’abc’
Cau trúc
Li¼t kê danh sách các trưòng
f=fieldnames(s);
Tham chieu đ¼ng tói các trưòng (dynamic field reference):
s.x; s. tham chieu tĩnh (static field reference) tói s.x tham chieu đ®ng
(’x’) tói s.x
Vòng l¼p trên các trưòng
f=fields(s); tương đương vói f=fieldnames(s) for
i=1:length(s)
doSomething(s.(f{i}));
end
ho¾c
for f=fields(s) doSomething(s.
(char(f)));
end
gon nhat
structfun(@doSomething,s);
Cau trúc
for i=1:10
s(i).y=rand();
s(i).x=[i:i+2];
s(i).name=sprintf(’name d’,i);
end
for i=1:length(s)
X(:,i)=s(i).x;
end
X=[s.x];
N®i dung
1 Giái thi¾u Matlab
2 Bieu thúc Matlab
Bien
So
Các toán tu
3 Các hàm
4 Vector
5 Đa
thúc
Ma tr¾n
Nh¼p ma
tr¼n Ghép
6 noi
7
Xóa hàng và
c¼t
8
M¼t so l¼nh
xu lý ma tr¼n
Cau trúc (Structures)
Mang(SAMI-HUST)
te bào (Cell Arrays) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 56 / 66
Mang te bào (Cell Arrays)
Mang te bào
Mang te bào
Ví dn
>> a={[1 2],3}
a=
[1x2 double] [3]
>> y=a{1}
y=
1
2
>> ycell=a(1)
ycell =
[1x2
double]
>> x=y+1
x = xcell=ycell+1
>>
2
??? Undefined function or method ’plus’ for input arguments of type ’cell’.
>> onetwothree=[a{1:2}]
3
onetwothree =
1 2
3
(SAMI-HUST) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 58 / 66
Ve đo thà
N®i dung
1 Giái thi¾u Matlab
2 Bieu thúc Matlab
Bien
So
Các toán tu
3 Các hàm
4 Vector
5 Đa
thúc
Ma tr¾n
Nh¼p ma
tr¼n Ghép
6 noi
7
Xóa hàng và
c¼t
8
M¼t so l¼nh
xu lý ma tr¼n
Cau trúc (Structures)
Mang(SAMI-HUST)
te bào (Cell Arrays) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 59 / 66
Ve đo thà Ve đo thà 2-D
Ve đo thà 2-D
L¾nh cơ ban:
plot(x,f(x))
Trong đó, x là vector chúa mien xác đành cua hàm có bieu thúc là f (x).
Ví dn 1
Ve đo thà hàm so y = sin(x) vái x bien thiên trong khoang [0, 2π]:
x = 0:pi/100: 2*pi; y =
sin(x);
plot(x, y);
Ve đo thà 2-D
Chú thích thêm cho đo thà
text(x, y, ’...’) Đ¼t chú thích lên đo thà tai toa đ¼ (x,y)
gtext(’...’) Đ¼t chú thích lên đo thà,
và trí đưoc xác đành boi click chu¼t
title(’...’) legend(’...’,’...’,...) Tiêu đe cua đo thà.
xlabel(’...’) Thêm chú giai cho đo thà.
ylabel(’...’) Ghi nhãn cho trnc Ox
\bf Ghi nhãn cho trnc Oy
\it Font in đ¼m
\rm Font in nghiêng
hold on/off Font chu thưòng
B¼t/tat che đ¼ cho phép ve nhieu đo thà
trong cùng m¼t h¼ trnc toa đ¼
Ve đo thà 2-D
Tùy chinh nét ve, dau và màu sac
Trong đó
Các màu sac: ’c’-cyan, ’m’-tím (magenta), ’y’-vàng (yellow), ’r’-đo (red),
’g’-xanh lá cây (green), ’b’-xanh nưóc bien (blue), ’w’-trang (white) và ’k’-đen
(black).
Nét ve: ’-’: nét lien, ’--’: nét đút, ’:’: cham cham, ’-.’: gach cham.
Dau: ’+’, ’o’, ’*’ và ’x’; ’s’: Q, ’d’: ◆ , ’^’: ▲, ’v’: V, ’>’: ►, ’<’: e,
’p’: $ , ’h’: ngôi sao 6 canh.
Ve đo thà 2-D
Tùy chinh màu sac và đ® r®ng cua nét ve
Ví dn 2
x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));
plot(x,y,’-rs’,’LineWidth’,2,’MarkerEdgecolor’,’k’, ...
’MarkerFacecolor’,’g’, ’Markersize’,10)
Ve đo thà 2-D
tao ra m¼t ma tr¼n m hàng, n c¼t chúa m × n đo thà , p là và trí cua tùng đo thà, thú tn
tù trên xuong dưói.
Ve đo thà 3-D
L¼nh cơ ban
>> plot3(x, y, z)
Trong plot3, ta can xác đành các vector (x, y, z). Đe ve m¼t z = f (x, y), su dnng l¼nh
>> meshgrid(x,y)
Ví dn 3
>> t = 0:0.02*pi:25*pi;
>> x = sin(t); y = cos(t);
>> z = t;
>> plot3(x,y,z);
Ví dn 4
2 2
Ve m¼t z(x, y) = x 2 y e − x − y
vói − 4 ≤ x ≤ 4; −4 ≤ y ≤ 4
[x,y]=meshgrid([-4:0.1:4]);
z=x.*x.*y.*exp(-x.^ 2-y.^ 2);
plot3(x,y,z)
(SAMI-HUST) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 65 / 66
Ve đo thà Ve đo thà 3-D
Ve đo thà 3-D
M®t so l¾nh khác (đqc help!)
In và xuat đo thà
Dùng l¼nh
>> print -dtiff -
r200
mygraph.tiff
print –deps2
(SAMI-HUST) Matlab cơ ban Hà N¼i, tháng 8 năm 2015 66 / 66