Matlab và ứng dụng trong cơ kỹ thuật Tài liệu giảng dạy tại trường ĐH QG HN Tài liệu giúp người học tiếp cận các nội dung cơ bản của matlab. Thích hợp cho các sinh viên mới nhập môn MATLAB. Kiến thức được ghi lại ngắn gọn và tổng hợp nhất.
Trang 2Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ộ C ỗ C
ỗ i nói đ u 1
ớồ ộ I ỘỌTỗỌọ C ọ ộ 3
Chư ng Ộ Đ U 3
Gi i thi u M‚ởỗ‚‛ 3
M t s kiến th c cơ b n 5
C{c phép to{n thẫng dụng 5
C{c l nh qu n lý 5
C{c l nh nh p xu t d li u 7
1.2.4 Help trong MATLAB 11
Ởơ l c về M-file 12
ởóm tắt ch ơng 14
‛|i t p ch ơng 16
Chư ng VỐCTỚờ Vủ ỘỌ Tờ ộ 25
ỡector v| ma tr n trong M‚ởỗ‚‛ 25
ởhiết l p ma tr n trong M‚ởỗ‚‛ 25
C{c phép to{n cơ b n đ i v i ma tr n, vector 33
Đ i s tuyến tính 36
ởóm tắt ch ơng 40
‛|i t p ch ơng 41
Chư ng TÍộồ TỚÁộ Ở V I ỘỌTỗỌọ 49
Ở ph c 49
H|m vẫ danh 53
Cực trị v| nghi m c a h|m s m t biến s 54
Đa th c m t biến s 57
ởích ph}n v| đ o h|m 59
Trang 3Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ớh ơng trình vi ph}n 61
ởóm tắt ch ơng 63
3.8 ‛|i t p ch ơng 64
Chư ng ọ C4ộỒ C ỖÝ ồI U 69
Gi i thi u biến ký hi u 69
‛iến v| biểu th c 70
Ma tr n biến ký hi u 75
ởích ph}n v| đ o h|m đa th c biến ký hi u 77
ớh ơng trình vi ph}n v| h|m s biến ký hi u 79
ởóm tắt ch ơng 80
‛|i t p ch ơng 81
Chư ng Ộ ộỒ ồ ộ ồ ớ Vủ ỏ ỗI U C2 C U TờÚC 88
M ng h n h p 89
ởhiết l p m ng h n h p 89
ởruy xu t v| hiển thị thu c tính c a c{c phần t m ng h n h p 90
ỗ u chu i ký tự trong m ng h n h p 93
‛iến có c u trúc 94
ởhiết l p v| hi u chỉnh c{c biến c u trúc 94
ỡector biến c u trúc 97
C u trúc lồng nhau v| vector biến c u trúc lồng nhau 103
ởóm tắt ch ơng 105
‛|i t p ch ơng 106
Chư ng Đ Tồ TờỚộỒ ỘỌTỗỌọ 109
Đồ thị trong khẫng gian hai chiều 109
C{c l nh cơ b n 109
C{c l nh tăng c ng 115
Đồ thị trong khẫng gian ba chiều 120
Trang 4Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ở dụng plot 120
ở o l i v| mặt phẳng chiều 124
ởóm tắt ch ơng 127
‛|i t p ch ơng 128
Chư ng ỗ ớ TờÌộồ TờỚộỒ ỘỌTỗỌọ 138
Gi i thi u M-file 138
ỡăn b n 139
H|m do ng i dùng tự định nghĩa 140
C{c l nh lựa chọn 146
C{c phép to{n quan h 146
7.2.2 IF 148
7.2.3 SWITCH 152
ỡòng lặp 153
7.3.1 FOR 153
7.3.2 WHILE 155
ởóm tắt ch ơng 7 157
‛|i t p ch ơng 158
ớồ ộ II ỘỌTỗỌọ ộỒ ỏ ộỒ 163
Chư ng ớồỨộ TÍCồ Đ ộỒ ồ C C C U 163
ợ{c định vị trí c{c kh}u, kh p trong cơ c u 163
Ỗh o s{t chuyển đ ng v| t o phim mẫ ph ng chuyển đ ng c a cơ c u 167 Ỗh o s{t chuyển đ ng 167
ở o clip mẫ ph ng chuyển đ ng 170
ỡ n t c v| gia t c 171
‛|i t p ch ơng 177
Chư ng ỗÝ TồUỤ T ĐI U ỖồI ộ T Đ ộỒ 193
‛iến đ i ỗaplace 193
Trang 5Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
‛iến đ i z 196
ợ}y dựng c{c h tuyến tính – dừng 199
Mẫ hình h|m truyền 200
Mẫ hình điểm khẫng – điểm cực 203
Mẫ hình khẫng gian tr ng th{i 205
Chuyển đ i gi a c{c mẫ hình 207
Đặc tính th i gian tr trong h|m truyền 208
Ghép n i c{c mẫ hình 208
Gi n đồ ‛ode, ộyquist, ộichols v| đ{p ng c a h 210
ởóm tắt ch ơng 212
‛|i t p ch ơng 213
Ộ T Ở ọ C4ộỒ C ộỒ ỏ ộỒ CồUỤÊộ ỞỨU TờỚộỒ ỘỌTỗỌọ 227
TủI ỗI U TồỌỘ Ỗồ Ớ 233
ỏỌộồ Ộ C ồủỘ 234
Trang 6Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
L i nói đ u
MATLAB l| m t gói phần mềm m nh đang đ c s dụng r ng rãi cho nhiều mục đích c a nhiều đ i t ng kh{c nhau, đặc bi t l| trong khoa học v| kỹ thu t M‚ởỗ‚‛ có thể s dụng theo hai c{ch kh{c nhau ởh nh t l| s dụng c{c l nh lần l t đ a v|o d u nhắc v| thu d c kết qu thẫng dịch th hai l| viết c{c
l nh th|nh m t file có thể l| file l nh - scrip file hoặc d ng h|m – function file v| c{c l nh đ c thực hi n tự đ ng ngay sau khi gọi thực hi n thẫng qua gọi tên file M‚ởỗ‚‛ đ c trang bị sẵn nhiều h|m để thực hi n c{c nhi m vụ kh{c nhau thu c nhiều lĩnh vực, từ đơn gi n thực hi n c{c phép tính to{n học đến c{c nhi m
vụ ph c t p nh tìm nghi m c a ph ơng trình vi ph}n, t i u hóa, x lý
nh ởhêm n a, M‚ởỗ‚‛ còn đ c trang bị c{c c}u l nh c u trúc dùng cho l p trình cho phép ng i dùng tự ph{t triển c{c ch ơng trình theo mục đích riêng cho
nh ng b|i to{n cụ thể gặp ph i trong thực tế
Cu n gi{o trình n|y đ c biên so n cho sinh viên khoa Cơ học Ỗỹ thu t v| ởự
đ ng hóa, tr ng Đ i học Cẫng ngh , Đ i học Qu c gia H| ộ i nhằm giúp sinh viên l|m quen v i M‚ởỗ‚‛ s dụng M‚ởỗ‚‛ để gi i c{c b|i to{n đơn gi n v| tiến t i l p trình tính toán mô phỏng cho các bài toán cơ bản phức tạp hơn Khi đã nắm đư c những kiến thức cơ bản về khả năng, phương thức làm vi c của MATLAB và kỹ năng lập trình, sinh viên có thể xây dựng các chương trình phức tạp hơn trong MATLAB để giải quyết hi u quả các v n đề thực tế liên quan đến ngành, chuyên ngành đã học Cuốn sách đư c dùng kết h p với các bài giảng và các buổi thực hành để trang bị những kiến thức c n thiết cho các nhà khoa học và kỹ sư tương lai để có thể phát triển và nâng cao khả năng tính toán, xử lý và phân tích những v n đề chuyên môn đa dạng với sự tr giúp của máy tính
ộ i dung gi{o trình gồm c{c ch ơng sau:
Ch ơng M đầu,
Ch ơng ỡector v| ma tr n
Ch ơng ởính to{n s v i M‚ởỗ‚‛
Trang 7Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng ‛ cẫng cụ ký hi u
Ch ơng M ng h n h p v| d li u có c u trúc
Ch ơng 6: Đồ thị trong MATLAB
Ch ơng 7: ỗ p trình trong MATLAB
Ch ơng ớh}n tích đ ng học cơ c u
Ch ơng ỗý thuyết điều khiển tự đ ng
Ỗết thúc m i ch ơng, sinh viên có thể tự ẫn t p v| c ng c kiến th c đã học qua mục t ng h p c{c l nh trong ch ơng v| b|i t p có l i gi i t ơng ng Đ i v i
nh ng b|i t p khẫng có l i gi i chi tiết, sinh viên có thể trao đ i v i gi ng viên trong c{c bu i thực h|nh
ộgo|i ra để cung c p thẫng tin định h ng cho sinh viên mu n tìm hiểu thêm nh ng cẫng cụ dùng cho nh ng ng dụng chuyên s}u ởoolbox , m t s b cẫng cụ ph biến sẽ đ c gi i thi u tóm tắt trong phần phụ lục
Trang 8Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ớồ ộ I MATLAB C ọ ộ
Chư ng Ộ Đ U
1.1 Ồi i thi u ỘỌTỗỌọ
MATLAB (MATrix LABoratory l| phần mềm c a cẫng ty MathỢorks có
trụ s chính ộatick, Massachusetts, Mỹ (www.mathworks.com), đ c ng dụng
r ng rãi trong c{c lĩnh vực khoa học, kỹ thu t, đặc bi t l| điều khiển tự đ ng v| x
lý tín hi u s M‚ởỗ‚‛ đ c ph{t triển b i Cleve Moler v|o cu i nh ng năm
c a thế kỷ tr c trên cơ s th vi n nguồn c a ỗIộớ‚CỖ v| ỐIỞớ‚CỖ ốỚờởờ‚ộ ộh ng phiên b n đầu tiên c a M‚ởỗ‚‛ ch yếu phục vụ cho tính to{n x lý ma tr n v| gi i c{c ph ơng trình đ i s tuyến tính ộg|y nay, M‚ởỗ‚‛ còn đ c biết đến nh l| m t cẫng cụ có kh năng x lý đồ họa m nh mẽ (Theo
PC Magazine Encyclopedia)
Ồiao di n ỘỌTỗỌọ
Hình 1 1 Giao diện MATLAB
Trang 9Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ỗhi kh i đ ng, M‚ởỗ‚‛ sẽ hi n ra giao di n mặc định nh trên, trong đó bao gồm c{c c a s
Current ốolder ởh mục hi n h|nh, cho phép truy xu t t i c{c file ch a trong nó
Command Ợindow C a s l nh, ng i dùng có thể nh p l nh trên c a s n|y từ sau d u nhắc >>
Workspace: Ỗhẫng gian b nh c a M‚ởỗ‚‛, dùng để l u tr d li u c a c{c biến trong m t phiên l|m vi c c a M‚ởỗ‚‛
Command History: ỗịch s l nh đã thực hi n, cho phép xem hoặc thực hi n
l i nh ng l nh đã nh p v|o Command Ợindow tr c đó
Ởau đ}y l| m t s ví dụ đơn gi n thực hi n trong Command Ợindow t i d u nhắc >> nh p c}u l nh sau:
ans viết tắt c a answer để l u kết qu n|y
Hai phím mễi tên lên xu ng ↑ ↓ có thể đ c s dụng để gọi l i nh ng c}u l nh đã
s dụng tr c đó Có thể s dụng hai phím n|y t i d u nhắc >> hoặc sau khi nh p
m t s ký tự đầu tiên c a c{c ký tự đã s dụng ỡí dụ: để gọi l i l nh b = chỉ cần
nh p b v| sau đó nh n phím mễi tên
Trang 10Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ỏ u % đ c s dụng để viết chú thích cho c}u l nh Mọi ký tự phía sau d u % sẽ khẫng đ c M‚ởỗ‚‛ x lý ỡí dụ l y a nh}n v i b v| g{n gi{ trị cho d
sin(x) sin(x) atan(x) tan -1 (x)
ởrong M‚ởỗ‚‛ khi gặp tr ng h p th i gian thực hi n l nh qu{ l}u, có
thể s dụng t h p phím ctrl + c để ngừng c{c tính to{n đang thực thi C}u l nh
m i có thể đ c nh p v|o t i d u nhắc xu t hi n sau khi thực hi n t h p phím vừa nêu, l nh ngắt n|y đặc bi t hi u qu khi l p trình v i vòng lặp
Trang 11Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ỗhi mu n xóa m t hay nhiều biến, ta có thể s dụng l nh clear v i c{c cú
- Cú ph{p th nh t cho phép xóa biến cụ thể kh i Ợorkspace còn cú ph{p
th hai cho phép ng i s dụng xóa to|n b t t c c{c biến, h|m hi n h|nh Khi mu n hi n danh s{ch c{c biến có trong Ợorkspace ta có thể dùng who hoặc whos theo cú ph{p sau
??? Undefined function or variable ‘a’
>>clear all % xóa nốt các biến b và c
Trang 12Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ởrong đó biến a đ c xóa kh i Ợorkspace tr c tiên, tiếp theo l| c{c biến b
v| c Để ti n quan s{t ta có thể l|m s ch Command Ợindow bằng l nh clc
1.2 C{c l nh nh p xu t d li u
ộh p d li u từ b|n phím input
Cú ph{p
>>bien = input(‘text’)
>>bien = input(‘text’ ‘s’)
ởrong đó: bien l| tên biến b t kỳ do ng i s dụng đặt, text l| đo n văn b n
sẽ hiển thị th|nh c}u nhắc trên m|n hình, s l| tham s để M‚ởỗ‚‛ hiểu v| x lý
d li u nh p v|o d ng x}u ký tự
c hai cú ph{p trên, đo n văn b n sẽ đ c hiển thị trên m|n hình, đồng
th i M‚ởỗ‚‛ sẽ ch ng i s dụng nh p ký tự từ b|n phím tuy nhiên khi s dụng cú ph{p th nh t, ng i dùng chỉ có thể nh p v|o m t s , còn cú ph{p th hai, ng i dùng có thể nh p v|o m t x}u ký tự sau khi đã thẫng b{o cho
M‚ởỗ‚‛ bằng tham s s ởr ng h p thực hi n l nh input khi ng i dùng khẫng
nh p gi{ trị m| b m trực tiếp phím Ốnter thì gi{ trị tr về sẽ l| m t m ng r ng
ỡí dụ
>> Lop = input(‘Ban hoc lop nao: ‘, ‘s’)
Ban hoc lop nao: Co Dien Tu
Lop = Co Dien Tu
>>x=10;
>>SoSV = input(‘Lop ban co bao nhieu sinh vien: ‘)
Lop ban co bao nhieu sinh vien: 80
ởrong M‚ởỗ‚‛ có r t nhiều c{ch để t i d li u từ file v|o Ợorkspace,
trong đó đơn gi n nh t l| l nh load cho phép t i to|n b n i dung file v|o Ợorkspace Yêu cầu khi s dụng l nh load l| n i dung file đ c t i ph i d ng
ma tr n ch a c{c s , m i s c{c dòng ph}n c{ch nhau bằng ký tự tr ng, d u phẩy hoặc tab ốile có thể ch a c{c dòng chú thích trong M‚ởỗ‚‛ c{c dòng bắt đầu bằng ký tự %
Trang 13Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Cú ph{p
>>load name.ext
ởrong đó name.ext l| tên file ch a d li u cần t i ộếu trong phần tên file khẫng có phần m r ng ext, M‚ởỗ‚‛ sẽ tìm trong th mục hi n h|nh file có tên name.mat, nếu khẫng tìm th y name.mat hoặc tên file khẫng có phần m r ng khẫng ph i l| mat ví dụ txt, dat thì M‚ởỗ‚‛ sẽ coi file đó l| file ch a d li u
ASCII
ỗ nh load nh đã nói trên sẽ cho phép t i to|n b n i dung trong file
name.ext v|o trong Ợorkspace
ỡí dụ T o trong th mục hi n h|nh file diem.txt l| m t ma tr n h|ng c t
>>A = fscanf(fid, format)
ởrong đó file đ c x{c định b i tham s fid (file identifier l| s nguyên x{c định file có từ l nh fopen cú ph{p fid = fopen(filename) ), format l| định
d ng d li u ởo|n b d li u có định d ng format sẽ đ c copy từ file x{c định
b i fid v|o trong Ợorkspace v| sắp xếp theo d ng c t
Trang 14Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ỡí dụ file BDTH.txt có n i dung nh sau:
>>B=fscanf(fid,’%d %d %f %c’,[4 inf])
l u ma tr n trong file ‛ỏởH.txt v|o ma tr n ‛ có h|ng % t ơng ng
ỗưu ý: Ở dụng fscanf để đọc file có c c{c ký tự v| c{c s nh ví dụ trên,
ma tr n tr về sẽ l| ma tr n s , trong đó gi{ trị tr về c a c{c ký tự trong ma tr n l| gi{ trị t ơng ng trong b ng mã ‚ỞCII
ởh kiểm tra v i gi{ trị cu i cùng c a h|ng trong ma tr n thu đ c
Trang 15Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
>>disp(A)
xu t ra ma tr n ‚ thu đ c từ ví dụ trên
>>nhap = ‘Kiem tra lenh disp’
>>disp(nhap)
Kiem tra lenh disp
ợu t d li u theo định d ng ra file hoặc ra m|n hình fprinf
ỡí dụ sau trình b|y c{ch m file vd1.txt v| ghi v|o n i dung d i đ}y
Diem cua sinh vien 1 la: 8
Diem cua sinh vien 2 la: 9
Diem cua sinh vien 3 la: 10
ỗ nh fprintf còn cho phép định d ng sẵn s ký tự dùng để biểu di n c{c
biến ỡí dụ % d sẽ s dụng m t kho ng r ng ký tự để biểu di n m t s nguyên,
% s sẽ s dụng m t kho ng r ng ký tự để biểu di n m t x}u Đ i v i s thực,
s ch s phần th p ph}n cễng đ c x{c định, ví dụ % f đồng nghĩa v i vi c
Trang 16Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
M‚ởỗ‚‛ sẽ s dụng m t kho ng r ng ký tự bao gồm d u th p ph}n v| phần
th p ph}n v i hai ch s biểu di n phần th p ph}n
ỗưu ý: ộếu phần biểu di n r ng hơn so v i yêu cầu, c{c ký tự đầu tiên sẽ l|
c{c ký tự tr ng, nếu phần biểu di n phần th p ph}n r ng hơn so v i yêu cầu, c{c
1.2.4 Help trong MATLAB
ỡề nguyên tắc ta có thể truy xu t mọi thẫng tin về M‚ởỗ‚‛ s dụng ch c
năng tr giúp Help ỏ i đ}y l| m t s c{ch s dụng đ i v i ch c năng n|y
Hình 1 2 Help Browser
Trang 17Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ở dụng tr giúp khi biết tên h|m trong c a s l nh, khi gậ
>>help tên_ham, file M-help t ơng ng sẽ hiển thị trong c a s l nh,
bao gồm mẫ t tóm tắt ch c năng c a h|m, cú ph{p v| c{c h|m liên
quan
ởìm kiếm thẫng tin liên quan về m t từ khóa trong c a s l nh, khi gậ
>>lookfor tu_khoa, M‚ởỗ‚‛ sẽ hiển thị t t c c{c ch đề liên quan
đến từ khóa vừa nh p, lookfor đặc bi t h u ích khi khẫng nh chính
x{c c{ch viết c a tên h|m
Ở dụng Help ‛rowser trình duy t tích h p v i c a s M‚ởỗ‚‛ cho
phép tìm kiếm v| đ a ra kết qu d i d ng t|i li u HởMỗ Help
‛rowser có thể m theo c{c c{ch s dụng phím help trên thanh cẫng
cụ, gậ helpbrowser hoặc doc trong c a s l nh, chọn Help\Menu help
trên thanh thực đơn C a s Help ‛rowser bao gồm hai phần chính,
Help ộavigator bên tr{i cho phép tìm kiếm thẫng tin, bên ph i l| n i
dung thẫng tin tìm đ c ởrong c a s Help ộavigator, thẫng tin có thể
đ c tìm theo c{c ph ơng th c
Contents C{c mục tìm kiếm sắp xếp theo danh s{ch
Index ởìm kiếm theo từ khóa
Ởearch results danh s{ch c{c kết qu tìm đ c
ỏemos c{c ch ơng trình gi i thi u có sẵn về c{c ðề mục trong MATLAB
Ở lư c v Ộ-file
‛ên c nh vi c cho phép ng i s dụng thao t{c trực tiếp trên c a s l nh,
M‚ởỗ‚‛ cung c p m t chế đ so n th o văn b n qua đó ng i dùng có thể thực
hi n m t t p h p c{c l nh lặp lặp đi lặp l i hoặc tự x}y dựng cho mình c{c h|m
phù h p v i từng yêu cầu cụ thể ộg i s dụng có thể so n th o v| l u l i d i
d ng file văn b n có phần m r ng l| m
M-file có thể đ c t o đơn gi n bằng vi c chọn New trên danh mục File v|
sau đó chọn Script, hoặc gậ l nh edit trên c a s l nh Ởau khi đã so n th o n i
dung cho M-file, ng i s dụng có thể ch y lần l t t t c c{c n i dung có trong
M-file bằng c{ch gậ tên c a file lên c a s l nh, hoặc có thể copy m t phần c a file
rồi d{n lên c a s l nh để thực thi
Trang 18Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ch ơng m đầu n|y, t{c gi chỉ gi i thi u sơ l c về M-file v i m t s ví
dụ đơn gi n, trong tr ng h p sinh viên đã có kiến th c cơ b n về M‚ởỗ‚‛, có thể chuyển sang mục để tìm hiểu kỹ hơn về M-file
Ởau đ}y l| m t ví dụ về vi c tính t ng, hi u v| th ơng c a hai s a v| b s
ỗ i ích đầu tiên c a vi c s dụng M-file có thể th y đ}y l| nếu ta có nhiều
cặp gi{ trị (a, b) thì chỉ vi c thay gi{ trị t ơng ng v|o qh_2so v| ch y l i file ch
khẫng ph i lặp l i vi c thực hi n c{c l nh tính to{n ngo|i c a s l nh ‛ên c nh
đó, nh đã nói trên, M‚ởỗ‚‛ cho phép ng i dùng tự x}y dựng c{c h|m v i c{c tham s đầu v|o cễng nh gi{ trị tr về t ơng ng, sau đ}y l| m t ví dụ đơn
gi n về vi c x}y dựng h|m tính t ng c a hai s
tong.m
function z = tong(a,b)
z = a+b;
Trang 19Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
end
C u trúc cơ b n đ i v i m t h|m trong M‚ởỗ‚‛ l| dòng khai b{o h|m bắt
đầu bằng từ khóa function, tiếp đến l| c{c thẫng tin liên quan về gi{ trị đầu ra v| đầu v|o, kết thúc h|m bằng từ khóa end, phần n i dung gi a l| c{c l nh phù
h p theo yêu cầu b|i to{n H|m tong.m vừa x}y dựng có thể đ c gọi trong c a s
h|ng/c t c a ma tr n
( ) ộgoặc bao tham s h|m, chỉ s m ng, vector
[ ] ộgoặc bao phần t m ng, vector
ỏ u ngăn c{ch phần nguyên v| phần th p ph}n
… Ỗý hi u dòng liên tục
, ộgăn c{ch c{c c}u l nh v| c{c phần t trên cùng m t h|ng
; ộgắt c t v| khẫng hiển thị kết qu sau khi thực hi n l nh
% ởhể hi n phần chú thích v| c{c định d ng đặc bi t
ộhóm l nh qu n lý clc ợóa m|n hình c a c a s l nh
clear ợóa biến kh i b nh
help ởr giúp khi biết chính x{c tên h|m
lookfor ởr giúp khi khẫng biết chính x{c tên h|m
Trang 20Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
quit ởho{t kh i ch ơng trình M‚ởỗ‚‛
who Hiển thị c{c biến hi n h|nh danh s{ch rút gọn
whos Hiển thị c{c biến hi n h|nh danh s{ch đầy đ
Ộ t s bi n v| hằng đặc bi t ans Ỗết qu gần nh t thu đ c
i,j Đơn vị phần o, tuy nhiên i v| j cễng th ng xuyên đ c s
dụng nh l| chỉ s trong c{c vòng lặp, để tr{nh xung đ t x y ra, trong vòng lặp nên s dụng ii hoặc jj l|m chỉ s
nan Ỗết qu s khẫng đ c định nghĩa ộot a ộumber
ộhóm l nhnh p xu t d li u input ộh p d li u từ b|n phím
load Đọc d li u từ file, định d ng biến gi ng nhau
fscanf Đọc d li u từ file, định d ng biến kh{c nhau
disp ợu t ra m|n hình n i dung c a m t m ng, m t x}u
fprintf ỗ u d li u có định d ng ra file hoặc ra m|n hình
Đ nh d ng cho fprintf v| fscanf
\t Chèn tab theo ph ơng ngang
\v Chèn tab theo ph ơng dọc
Đ nh d ng s hi n th
format short Hiển thị ch s sau d u phẩy, mặc định
format long Hiển thị ch s sau d u phẩy
format short e Gi ng định d ng short nh ng có thêm phần lễy thừa
Trang 21Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
format long e Gi ng định d ng long nh ng có thêm phần lễy thừa
format bank Định d ng theo quy định ng}n h|ng cho dollars v| cents, hai
c) ans = , kết qu phép tính b + 3 hiển thị trên m|n hình c a s l nh, trong
tr ng h p phép tính khẫng x{c định biến l u kết qu nh c}u n|y, kết
qu sẽ tự đ ng g{n v|o biến ans
Trang 22Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ỗưu ý: th tự u tiên c{c phép tính trong M‚ởỗ‚‛ ởrong M‚ởỗ‚‛, c{c phép
tính đ c thực hi n theo th tự nh quy định trong đ i s , trong đó l)y thừa thực hi n tr c, tiếp theo l| c{c phép nhân, chia rồi đến cộng, trừ ởuy nhiên khi
xu t hi n ngoặc , phép tính trong ngoặc sẽ đ c u tiên tr c Đ i v i
nh ng phép tính có cùng m c u tiên, trình tự tính to{n tiến h|nh từ tr{i qua
ph i
ỡí dụ Phép tính d i đ}y đ c thực hi n trong M‚ởỗ‚‛ nh sau
7
65
Trang 23Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
1
1
)(
c) NaN
ọ|i Ởave v| ỗoad
ỏùng l nh save t o file bai1_6 ch a hai biến sv v| diem có gi{ trị nh sau
>>sv = [1;2;3;4;5];
>>diem = [6.25;7;8.50;9.75;10];
ợóa Ợorkspace, dùng l nh load để t i l i c{c biến sv, diem v|o Ợorkspace
Trang 24Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Đáp án:
>>save bai1_6 sv diem
>>clear all
>>load bai1_6
Có thể s dụng load để t i v|o Ợorkspace c{c biến cụ thể từ file theo cú
ph{p load filename var, ví dụ b|i n|y có thể dùng >>load vd1_6 diem để
chỉ load biến diem từ file v|o Ợorkspace
ọ|i fopen v| fscanf
Ở dụng m t ch ơng trình so n th o b t kỳ, t o file bai1_7.txt có n i dung
ỗưu ý: khi dùng fopen, tên file đ a v|o khẫng có phần m r ng, M‚ởỗ‚‛
sẽ tự đ ng tìm mat file có tên nh tên đ a v|o, nếu fopen khẫng thể m
đ c file, fid sẽ nh n gi{ trị = -1
>>fscanf(fid, ‘%d’, [4,3]);
M‚ởỗ‚‛ l|m vi c v i ma tr n theo c t, m{y tính x lý file theo dòng ốile
bai1_7.txt có ma tr n h|ng c t t ơng đ ơng v i s dòng c a file l| Ỗhi
thực thi, fscanf đọc từng s c a file, l y s đầu c a h|ng , tiếp đến s
c a h|ng , cu i cùng l| s c a h|ng , đ a t t c s n|y v|o m t ma
tr n m t c t Ởinh viên có thể tự kiểm tra l i bằng c{ch nh p l nh
>>fscanf fid, %d thay vì >>fscanf fid, %d , , ví dụ n|y ta s dụng , để yêu cầu M‚ởỗ‚‛ t i d li u từ file v|o ma tr n h|ng c t ộh
v y phần t c a dòng th nh t trong file đ c đ a v|o vị trí t ơng ng
c a c t ma tr n m i t o, phần t c a dòng th hai đ c đ a từ file v|o
vị trí t ơng ng c a c t Ma tr n thu đ c sau b c n|y sẽ có d ng:
Trang 25Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Để thu đ c ma tr n nh trong file, ta cần thực hi n b c chuyển vị ma
tr n
>>ans’
ọ|i fprintf in ra m|n hình
ỗoad l i hai biến sv, diem b|i v|o Ợorkspace, dùng l nh fprintf in kết
qu sau ra m|n hình trong đó phần điểm có hai ch s sau d u th p ph}n
ọ|i fprintf xu t ra file
Ở dụng l nh fprintft o file bai1_9.txt có n i dung sau s dụng biến ds
Trang 26Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
>> fclose(fid);
ọ|i Input
ở o biến r có gi{ trị nh p v|o từ b|n phím l| b{n kính c a hình cầu theo
cm In ra m|n hình thể tích v| di n tích bề mặt hình cầu theo m u sau The tich hinh cau la V cm khoi
Dien tich hinh cau la S cm vuong
trong đó gi{ trị thể tích v| di n tích có hai ch s sau d u th p ph}n
Trang 27Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Gió th ng l|m cho khẫng khí l nh hơn so v i thực tế Cẫng th c tính nhi t đ c m nh n khi biết nhi t đ thực tế ở đ Celcius v| v n t c gió ỡ km/h hai gi{ trị ở, ỡ nh p v|o từ b|n phím
33)0.33()2778.045.102735
.5(045
d) ở o s nguyên trong kho ng ,
e) ở o s nguyên trong kho ng ,
f) ở o s nguyên trong kho ng ,
Trang 28Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
G i ý Để chuyển đ i m t ch th|nh s t ơng ng trong b ng mã ‚ỞCII s
dụng l nh double hoặc int32, ví dụ >>double a sẽ đ a ra kết qu Để chuyển ng c l i dùng h|m char, ví dụ >>char(97) sẽ đ a ra kết qu a ọ|i ọ|i to{n thu nh p
ởrung bình con ng i s dụng đến % thu nh p cho thực phẩm ở o biến l u gi{ trị thu nh p m t năm c a m t ng i nh p từ b|n phím dollars , in ra m|n hình s tiền bình qu}n ng i đó s dụng trong m t th{ng để mua thực phẩm biểu di n bằng s th p ph}n có hai ch s sau
d u th p ph}n
Thu nhap mot nam cua ban la:
Moi thang ban su dung tu X den Y dollars de mua thuc pham
ọ|i V n t c m{y bay
ỡ n t c m{y bay th ng ghi theo miles/h hoặc m/s ở o biến l u v n t c m{y bay theo miles/h nh p v|o từ b|n phím v| in ra m|n hình v n t c m/s
‛iết rằng h = s, mile = feet, foot = m feet l| s nhiều c a foot)
Nhap van toc may bay theo (miles/hour):
Van toc may bay theo meters/second la:
ọ|i ỏi n tích hình ch nh t
ở o biến l u chiều d|i v| chiều r ng c a hình ch nh t theo cm nh p từ b|n phím, in ra m|n hình di n tích hình ch nh t theo m2 biểu di n bằng
s th p ph}n chính x{c đến
Nhap chieu dai hinh chu nhat theo cm:
Nhap chieu rong hinh chu nhat theo cm:
Trang 29Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Dien tich hinh chu nhat la S (met vuong)
Trang 30Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
m trong đó m l| s h|ng, n l| s c t t ơng ng c a ma tr n ộếu m t vector có
n phần t , chiều c a vector h|ng t ơng ng đ c biểu di n l| 1n, vector c t
đ c biểu di n l| n1
M t gi{ trị vẫ h ng có chiều l| 11 ỡector v| gi{ trị vẫ h ng thực ra l|
tr ng h p đặc bi t c a ma tr n Hình d i từ tr{i qua ph i l| biểu di n t ơng
ng c a gi{ trị vẫ h ng, vector c t, vector h|ng, ma tr n
3
M‚ởỗ‚‛ đ c viết ra v i mục đích l|m vi c v i c{c ma tr n, do đó trong M‚ởỗ‚‛ r t d d|ng t o c{c biến vector v| ma tr n cễng nh ch a r t nhiều h|m v| phép to{n x lý vector, ma tr n
Thi t l p ma tr n trong ỘỌTỗỌọ
Thi t l p vector h|ng
Có nhiều c{ch để thiết l p vector h|ng trong M‚ởỗ‚‛, trong đó trực tiếp
nh t l| nh p gi{ trị c{c phần t c a vector v|o trong ngoặc vuẫng [ ], ngăn c{ch
gi a c{c phần t b i ký tự tr ng hoặc d u phẩy ỡí dụ: C hai c}u l nh d i đ}y
cùng t o ra vector v
>>v = [ 1 2 3 4];
>>v = [ 1, 2, 3, 4]
v =
Trang 31Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
1 2 3 4
ởrong tr ng h p c{c phần t trong ma tr n có gi{ trị c{ch đều nhau, d u :
có thể s dụng để thiết l p vector, trong tr ng h p n|y khẫng cần s dụng
ngoặc vuẫng [ ] n a ỡí dụ
>>v1 = 1 : 5
v1 =
1 2 3 4 5
ỏ u : cễng có thể s dụng để thiết l p vector m| c{c phần t c{ch nhau m t
kho ng cho tr c theo cẫng th c s đầu kho ng c{ch s cu i )
ỡí dụ: T o vector gồm c{c s nguyên từ đến c{ch đều
ỗ nh n|y sẽ t o m t vector bao gồm c{c phần t , , ởăng thêm v|o
sẽ v t qua , vì thế vector sẽ dừng Ỗết qu hiển thị sẽ l|:
1 3 5
ở ơng tự ta có h|m linspace (lineary spaced), cho phép t o vector có c{c
phần t c{ch đều theo cú ph{p sau
m i đ c thiết l p d i đ}y bao gồm t t c c{c phần t c a vector v2 v| vector ls:
Trang 32Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ởrong M‚ởỗ‚‛, c{c phần t trong m t vector đ c đ{nh s lần l t theo
th tự, bắt đầu từ ỡí dụ: Chỉ s c a c{c phần t trong vector newvec đ c thể
hi n d i đ}y
M i phần t trong vector có thể truy xu t đến bằng c{ch s dụng tên vector
v| chỉ s c a phần t đó trong ngoặc ( ) ỡí dụ: Phần t th c a vector newvec
l|
>>newvec (5)
ans =
9
Ở dụng d u : cễng có thể truy xu t đến c{c phần t trong m t vector ỡí
dụ: C}u l nh sau sẽ l y từ phần t th t đến phần t th s{u c a vector newvec v| l u gi{ trị v|o vector b:
>>b = newvec (4 : 6)
b =
7 9 3
‛ên c nh vi c s dụng d u : c{c phần t trong vector n|y có thể đ c truy
xu t b i c{c vector kh{c, gọi l| vector chỉ s ỡí dụ: C}u l nh sau sẽ l y ra phần t
th nh t, th năm v| th m i c a vector newvec:
khẫng tồn t i, ta có thể m r ng vector đó ỡí dụ vector b trên có phần t Ỗhi
ta g{n gi{ trị cho phần t th t c a b, b tr th|nh vector có phần t
>>b (4) = 1
b =
7 11 3 1
Trang 33Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ộếu chỉ s nh p v|o v| chỉ s phần t cu i cùng c a vector khẫng ph i l| hai s liên tiếp, t t c c{c phần t gi a sẽ nh n gi{ trị ỡí dụ: L nh sau tiếp tục
C{ch thẫng dụng để t o vector c t l| nh p gi{ trị c{c phần t v|o trong
ngoặc vuẫng [ ], ngăn c{ch b i d u ;
Ỗhẫng thể s dụng d u : để t o vector c t m t c{ch trực tiếp ởuy nhiên có
thể {p dụng phép chuyển vị lên mọi vector h|ng để t o ra vector c t t ơng ng
Trang 34Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ỗ u ý Ở phần t m i h|ng ph i luẫn bằng nhau ởr ng h p ma tr n
nh p v|o có s phần t c{c h|ng l| kh{c nhau, kết qu nh n đ c sẽ l| thẫng b{o l i
>>mat = [3 5 7; 1 2]
??? Error using ==> vertcat
CAT arguments dimensions are not consistent
Để ph}n bi t c{c dòng trong ma tr n, bên c nh vi c s dụng d u ; còn có thể s dụng phím Enter
Ỗhi truyền m t tham s n cho h|m rand, ma tr n t o th|nh sẽ l| m t ma
tr n vuẫng nn , khi h|m rand có hai tham s m, n, ma tr n t o th|nh sẽ l| ma
tr n m h|ng n c t
>>rand (2)
ans =
0.3527 0.4068 0.9982 0.1764
Trang 35Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Truy xu t v| thay đ i c{c ph n t trong ma tr n
Có thể truy xu t đến c{c phần t đơn lẻ c a ma tr n s dụng tên ma tr n đi
kèm v i chỉ s h|ng, chỉ s c t trong ngoặc ( ) chỉ s h|ng luẫn đ ng tr c chỉ s
Trang 36Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ộếu chỉ s dụng m t chỉ s ch s tuy n tính để truy xu t đến c{c phần
t trong ma tr n, M‚ởỗ‚‛ khi đó sẽ sắp xếp l i t t c c{c phần t ma tr n đó v|o
m t c t ỡí dụ ma tr n intmat đ c t o đ}y, phần t th nh t v| th hai c a ma
Để thay đ i gi{ trị c a c{c phần t đơn lẻ trong ma tr n, có thể truy xu t
đến v| g{n cho phần t đó gi{ trị m i ỡí dụ: Đ i v i ma tr n mat t o tr c đó
Để m r ng ma tr n, khẫng thể chỉ thêm v|o m t phần t vì khi đó sẽ l|m
s phần t c a m i h|ng tr nên kh{c nhau m| cần thêm v|o c h|ng hoặc c t ỡí
dụ: Chèn thêm c t th t v|o ma tr n mat trên
>>mat (:, 4) = [9; 2]
mat =
2 11 4 9
Trang 37Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
5 6 7 2
ở ơng tự nh đ i v i vector, nếu h|ng hoặc c t thêm v|o so v i h|ng hoặc
c t cu i cùng c a ma tr n hi n th i khẫng ph i l| liền nhau, M‚ởỗ‚‛ sẽ tự điền
đầy ma tr n bằng c{c gi{ trị ỡí dụ: Chèn thêm h|ng th t v|o ma tr n mat chỉ
C{c h|m length, size trong M‚ởỗ‚‛ đ c s dụng để x{c định kích th c
c a vector v| ma tr n Cú ph{p gọi h|m nh sau
>>length(X)
>>size(X)
ởrong đó X l| vector, ma tr n đ c quan t}m
H|m length tr về s phần t c a m t vector H|m size tr về s h|ng v|
s c t c a ma tr n hoặc vector ỡí dụ vector vec t o d i đ}y có b n phần t , nh
v y gi{ trị tr về c a h|m length vec sẽ có gi{ trị l| ỡector vec cễng có thể coi l|
Trang 38Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
tr{i c a c}u l nh ‛iến h sẽ l u gi{ trị đầu tiên tr về, t ơng ng v i s h|ng c a
Ỗhi s dụng v i ma tr n, h|m length sẽ tr về s h|ng hoặc s c t c a ma
tr n đó, tùy v|o gi{ trị n|o l n nh t
>>length (mat)
ans =
3
ộgo|i ra trong M‚ởỗ‚‛ còn có h|m numel tr về t ng s phần t trong
m t vector hoặc ma tr n theo cú ph{p sau
ớhép c ng hai ma tr n t ơng đ ơng v i vi c c ng từng phần t t ơng ng
c a hai ma tr n đó, điều n|y đồng nghĩa v i vi c hai ma tr n ph i có cùng kích
th c ớhép c ng ma tr n có thể biểu di n nh sau c ij a ij b ij Trong MATLAB,
Trang 39Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
phép c ng hai ma tr n có thể đ c thực thi s dụng phép to{n + ở ơng tự phép trừ hai ma tr n thực hi n b i phép to{n -, biểu di n c ij a ij b ij
ớhép nh}n v i m t s l| phép nh}n t t c c{c phần t c a m t ma tr n v i
m t s , thực thi trong M‚ởỗ‚‛ b i phép to{n *
ớhép nh}n m ng cho phép nh}n từng phần t t ơng ng c a hai ma tr n
ij a b c
1
ớhép lễy thừa ma tr n ‚ thực hi n liên tiếp phép nh}n ma tr n ‚ v i chính
nó Ma tr n ‚ cần ph i l| ma tr n vuẫng để thực hi n phép tính n|y
Ộa tr n chuy n v c a ma tr n ‚ l| ma tr n ‚ có h|ng v| c t đ i vai trò
cho nhau, ký hi u ‚T, trong M‚ởỗ‚‛ đ c thực hi n b i phép to{n ‘
Trang 40Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Đ nh th c c a ma tr n vuẫng ‚ trong M‚ởỗ‚‛ đ c tính theo h|m det
ồ ng c a ma tr n ‚ trong M‚ởỗ‚‛ đ c tính theo h|m rank
ớhép nh}n vô hư ng c a hai vector t ơng tự nh phép nh}n ma tr n khi ta
nh}n vector h|ng av i vector c t b, kết qu thu về l| m t gi{ trị vẫ h ng m t s
ởrong M‚ởỗ‚‛ có thể thực hi n bằng c{ch s dụng phép to{n * gi a a v| chuyển
vị c a b, hoặc s dụng h|m dot theo cú ph{p