MATLAB cở bản 4: Câu lệnh rẽ nhánh và vòng lặp

Lu ROm

Administrator
Staff member
25 Tháng bảy 2014
481
119
43
32
One piece
vimach.net
1.1.Câu lệnh lựa chọn
1.1.1. Biểu thức quan hệ

Các toán tử quan hệ trong MATLAB là :
75.png

1.1.2. Câu lệnh IF
Câu lệnh if xác định 1 điều kiện hoặc 1 nhóm điều kiện xảy ra thì cho phép thực hiện các câu lệnh .Cú pháp:
mnb8DuZ1xPi4g9L5zgncVAlDrpxBNcsDVLKjABo_J6oBrpgAC_cjFor03ytINudYkhcIC6HNHkzHf2NmTizKxoFmPiBhKv_3yfkVfK4EtGx8Ua2qfp813JH8_XFY88J0SRCzGuwVXIOXXjtLMe0KZ4kIkdosZc7-Isv4OX79WdsO6Mp1VqsZW32X8gsu1m--t6n9fyUh6Oe8GI3qrQx4PNEZ7ls4z0E43Fg4zjEQd6ZFDrKYtuZ5_qFgFh8yWXiCIxMpUb4WVYxSL-Kq32jFTQbTUtdEmorj6_AgIr6BS4YO6ZvOT4lA9Fwro2EFXUXOWiGtDgafldR9a3GmCK_ZEiiaiGOU3NK8uquToGXxb7akXF8PydeuJz_l_WC9D6YcaRbLZdHCD1_rjKkpfWxMrHB1RRm-9l03OMD4W_eK1jdl0feSdQjvXq_SkfgCD3clFdzqS4fhM6cN_EatBWMJ2k3Zdo7Cni5OPS1Dq2-xRHsweVtbCwuSR-B3RkKyCQVzY-vv0mxuq2Nt2R-lkBt9dberrSKPjm6P7t5pS1kn0MQ=w134-h85-no

1.1.3. Câu lệnh IF-ELSE và SWITCH
Câu lệnh if-else sử dụng để lựa chọn giữa 2 điều kiện . Cú pháp :
7L3JhFeQng0LwRnYW6gkw7cMfU39MqpO22fGQCy97gFSGKL1ihjb8RAYCI7i_Bk7BZTIDPB0gE6QIyc_iS5ovAdwQflfQBM9_eziVN_zobugzQ3I5ExHpNXYkZPQb52hMa-ZJU7JRx6X1ptmE9oP9vW6ugcDMcmu-UL1qsw_3GJtXruwg9MW-qy6UYcWwxH3RM4Mtn5LxZ5j1z43Mt_hZqYhhdI6Kbuq84-Uvy-FgvpvD6zPECY3Yb6LczYM5tSg7kGl1kginR9Yu24xmSSkB_Avs1ZyMekR4-D3jAfVaXHzXsETTvQEQCZFNttPBmYbj0yads6l_9-mf_-otM54x2Q6jY7lgmM9a1myBvP3ZBjeFlHiPqInTWXfdKAgrzKjkTj7MutKl7IjvvaTvU1_OQyGHS69ajskka-oG26uPfsr1BJXqi93tQaL9wvpTsT9dHrh-tJ8MEBnnO5maeWUjILltGVVe1Jc1QRD2P9mZnCPF5-dsujV6vQ0k1KhXSruDio7TCcIgFohEfFPXSUFONjiw_gmd84MtPzvCak8rXk=w153-h154-no

Câu lệnh switch được sử dụng để thay thế lệnh if-else lồng nhau . Cú pháp :
iP29umOF0KSifdo9Oj7cAU-TC97Ux1OGuhdi_-2KTfXas0RRYN9tbgqoWg0-WZwRYm1GtsDqQitSOxePbJnObnaNYdIH9qarysEJm5dC_DzXyUWZxdjN4T6e9vQ8yX52E0ULpf1sFsxjWKbcjs_ntccOTbYacYAiVCNZmVIw_NufzqpJZB6MzWBqE36qSe-UWlbW_T89LpIO_U98FNxVXbqnWA3hZuKBJXL74KUJ2axD8cETpFBxoZ2B6N3yUk_zqFGG3_sIIO3jGH88Z44yYvEzYd3xE7xts5hmCDBwcIuK_N1Aq_nPyk9oebp_XKkxp2GuqAzTTeL3daUYiz25m0f7ju4bWwlnJ9-lOnX8OG1Lmd638_QpeR0pFrMPpAfVdPSMz7NGFySOg6jRIWHTcgPbSDXGZpHqiYnoLQO28p6_dGUnax8irGjdL6fvmXy04ldZxbf2gqw43ntjmq9SWjt77Jbkvoqw-uUzB1xfA8sJ63ndpfFJGumSkaeKs4Cn9ERpy1V0XdYkTIBDdBUNAbBcFuvlWIRuNOhpcZV6Hn8=w264-h353-no

Bài tập : Một cơn bão là áp thấp , bão hoặc siêu bão được xác định bởi vận tốc gió trung bình . Là áp thấp nếu sức gió dưới 38 mph(miles per hour). Là bão nếu sức gió từ 39 đến 63 mph. Là siêu bão nếu sức gió trên 74 mph. Viết script cho phép người dùng nhập sức gió và hiển thị ra loại bão .

Code :
Mã:
vtoc = input('Nhap van toc gio : ');
if vtoc <= 38
  sprintf('Day la ap thap !')
elseif vtoc >=39 && vtoc <= 73
  sprintf('Day la bao !')
else
  sprintf('Day la sieu bao !')
end
Kết quả :
8uvXIer3TuydOJI3kaiyGjqe1KEwX7d9PLqrZSYBw7lffdhFPzRk6OeB3ss0xvodm4bbQVjvuexWkYf--YfA8PdsBUfl-vBPa2i6UXB0SyPlXkiJSf-nl5qpYGbzy4lB89OWbFYltlGIpt7kbr77d0ZTsml2Z_ECTOBh32Nyb01btHGbqpLnlt9Pt-ARUjWHYzrdGKLB_M9YqCcqEaqauuC8EIwt14pf8ts7UfhNjlncQ12-mfwDsGqT4CVrvrbzr5pmYJ6KPxEN-IFWDVAAkuHw0m6rYkKYAFPzgFoYEJs_k0xkyHsWAaC_Vsq5VTbgam9Vpp3rbndNKRkLb2D0dCd4XeHj83nuPLrlzdWYwBtVhy0CtVV9lYrk5MdbsFfi78S74-KTeijnI6zvxJuDEicn-5OJKy-zJOBmAsoDvoS3CFQzswe4w0ITNscNtq1voMvaqSqOKnn3cit6PrHQFBuL9EtYrz83o9No7_TbPrTW-8h7QdFm0ruXf73hFs3w_9hW99vt6CtISngk7vUknksPrKH9hUHPmtFU6zQUH0I=w203-h93-no

1.2.Vòng lặp FOR
Vòng lặp for được sử dụng khi cần lặp lại 1 biểu thức nào đó dựa theo số lần cần lặp được xác định trước. Cú pháp :
VmcjUcpnEBm3PTqTfCdd8W40F47tlQxp0pm9MX5C3FG-EGTE0yXfAOeFhjohZ1wNK3NE__6fITYWUnb0E3lSB8hpra8mMQcctec4kTDdFnb6Aw2T_DRltS-XXGrVwfsHbPZ6NA8tYMYniarUGhZregrMIe-pJs_sA92n2v8jE1b73SCNacUqvPEQ8WlNWlDJPw_iPmBiH0WpHIV4oYeTDgq_TLKps6jGB5cg9tBwmsMGlNVIhB0CZ9kUNhVd-Y07nsap27fUfrw_Q3t1x1LPYiOB0OcB0pthTwlksLDDxUeICCNichTw8G_bzKCUEeSHO70tnxdO6NI9EHExQw3Ol7lcOCbkWjAlD2H3wMIGG8Y6KutJ0M98IikQ0OZzGzaKsCFRK9UDGa9_PFKuLOY2Xt4jrMvTXChdlI__4RjJPSpNDz0C6rQxzaHPIs1ckq79T5ey_kZhqiN3Xz95zhCPj9wJMfpNqWNvBuEMNqwTEoDObHMwmNAlrPPgtI_eh0_UrCqF8DfZQKw5JV2LqH2e1soHxwMnJt_xD_MTUYLn02w=w165-h90-no

Bài tập : Tạo một ma trận 3x5 . Thực hiện các yêu cầu dưới theo 2 cách : sử dụng hàm có sẵn và sử dụng vòng lặp.
Ø Tìm giá trị lớn nhất trong mỗi cột.
Ø Tìm giá trị lớn nhất trong mỗi hàng.
Ø Tìm giá trị lớn nhất trong cả ma trận.
Cách 1 : dùng hàm có sẵn
Code:
Mã:
ma = randint(3,5,[0,100])
maxCol = max(ma,[],1)
maxRow = max(ma,[],2)
maxMa = max(maxRow)
Kết quả :
0pNhlZu4O3jW3TZ4XJ-Up5JEyGAgRF64U3CRbTEvVCk2Jy_3V0_onUJDy6D7rhU_tcV-VCjgrTk4c-9qIk2vwxM0GuiV7iX7EDdVra0BkgCPMFB37bskV8s0Qt4SuDpyQctBEd0hERjCLdNjF8962p2I79au_p05Jvc8zWsQwHCAK1SNMsfEMH9W3ADHlg0fA9z3t9l6PyEPs7QAMBYPF6OIj6SbqP5WL_N0e4Y6gZxIILnm5aj2o4eH1vXRWiN91H4PyF0-cYrQi7X2A7Qvr2VF2XPVKiDGP5RmBtzRDM7Vtv-iLAtN-iRD6HIQbpzeaW7eiVmJ8gwtvfk07jVRGeQZjljQ8w50i1_cpuLv2DjQiS0ZrX8OAdhCD0cJ6m-pgB9axN76s-lrarUOWCMzL27CClpDPloz2gAjMogwB2sfJ1TxCQVYlCgWopXPCkxz-iyspAx-Q2CwumbvbEwr0K7c0iY9YbyS8Siyf5719PUl2WKQU6OgbVmOs5TV2TMMCS8UGd0KOk2fs3jN46DVZ-Oxc-AX0lOtbNUTV9yik60=w320-h456-no

Cách 2 : Dùng vòng for (sử dụng câu lệnh if nếu cần thiết)
Code :
Mã:
ma = randint(3,5,[0,100])
maxMa = 0;
%thuat toan tim gia tri lon nhat cua tung hang
for i = 1:3
  maxRow = 0;
  for j = 1:5
  if maxRow < ma(i,j)
  maxRow = ma(i,j);
  end
  end
  sprintf('max Row %d : %d ',i,maxRow)
  %Gia tri lon nhat cua ca ma tran
  if maxMa < maxRow
  maxMa = maxRow;
  end
end
%chuyen vi ma tran hang sang cot
ma1 =  ma';
%thuat toan tim gia tri lon nhat cua tung hang
for i = 1:5
  maxCol = 0;
  for j = 1:3
  if maxCol < ma1(i,j)
  maxCol = ma1(i,j);
  end
  end
  sprintf('max Col %d : %d ',i,maxCol)
end
sprintf('max matran : %d ',maxMa)
Kết quả :
N-30el5YIjRQwFep9YPtcX6K9UekcsJ0h5bV5_FLVjcho7YdIZSLuq41SXNrMeI9nHcPTSoDtUuA6aDzSdnFjzLao6jRmfqnnAqsI9c49SDJRDcjPG2ZdNZPYx-tAqbyXdiHYvg0HuTrsYVJidNo8LP95pWebPzwxceAAEXmajJUs88vja3wGIRqJWqGF9PwcJCqblpSr_PS9gag_wzR0aF0RMyPoMq11DWqWHq5RZ_zeVDJ6lB_PzchwUg_y7-RZvlrDSlfi3Km5maMCHSIJiRHZJeqAu_0PT2MSVPcDwMJWDR1oLCMwkFW7MGKSzQrBYIY0Vqrn3LG-Vz3qnKiMLRHiFceqgI63lrjwHmznV8AelvpbZtH5r0TG-i-xzhNr73K9a5fVruxluqcbnHCNDwRQrxNBsUqfqzPNQQRwyFvLsMyzwr4GMitLt68heWgJ3vQ7PK1pjo8BiBMIOSmjUBzzRMIecb8SnJuf5PkW9wV3zG2ghGAuukyW0kRj4obClC_KHfedG5Kf5OC_TH_rxD5ZDIH96fBnspHqw_CHW4=w269-h363-no