Matlab và ứng dụng - Lệnh điều kiện và vòng lặp
File .m ghi các dòng lệnh Matlab.
Soạn thảo các file.m bằng MATLAB Editor hoặc bất
kỳ trình soạn thảo văn bản nào.
Gõ tên file để thực thi nội dung các dòng lệnh trong Gõ tên file để thực thi nội dung các dòng lệnh trong
file.
Có 2 loại file.m:
Scripts, chỉ thực thi các dòng lệnh, không có tham số
truyền vào hay trả về một giá trị nào cả.
Functions, có thể nhận tham số truyền vào và trả về giá trị
xuất. 22
2/9/2010 1 Lệnh điều kiện và vòng lặp …if…elseif…else…end Switch…end For…end While…end 1ntnhut@hcmus.edu.vn hắc lại file.m File .m ghi các dòng lệnh Matlab. Soạn thảo các file.m bằng MATLAB Editor hoặc bất kỳ trình soạn thảo văn bản nào. Gõ tên file để thực thi nội dung các dòng lệnh trong file. Có 2 loại file.m: Scripts, chỉ thực thi các dòng lệnh, không có tham số truyền vào hay trả về một giá trị nào cả. Functions, có thể nhận tham số truyền vào và trả về giá trị xuất. 2 2/9/2010 2 Câu lệnh IF … ELSE … Cú pháp tổng quát: IF bieu_thuc_logic Doan_lenh ELSEIF bt_logic Doan_lenh ELSE Doan_lenh END Ví dụ: if delta<0 disp(‘Pt vo nghiem’) elseif delta == 0 disp(‘Pt co nghiem kep’) -b/2/a else disp(‘Pt co 2 nghiem pbiet’) (-b-sqrt(delta))/2/a (-b+sqrt(delta))/2/a end 3 Câu lệnh IF Câu lệnh IF định giá trị bieu_thuc_logic và thực thi Doan_lenh nếu bieu_thuc_logic là true. Các từ khoá ELSEIF và ELSE là tuỳ chọn. Ứng với một IF là một END kết thúc Doan_lenh cuối cùng. 4 2/9/2010 3 Câu lệnh IF lồng nhau IF bt1 … IF bt2 … END END Ví dụ: a = input(‘a =’) disp(‘bạn vừa nhập 1 số’) if a > 0 disp(‘dương’) if mod(a,2) ~= 0 disp(‘lẻ’) else disp(‘chẵn’) end else disp(‘không dương’) end 5 Biểu thức logic với ma trận Nếu A, B là con số, A==B trả về true hay false theo đúng nghĩa của nó Nếu A, B là các ma trận, A==B trả về ma trận 0/1 các vị trí bằng nhau hoặc khác nhau tương ứng giữa các phần tử của hai ma trận. 6 2/9/2010 4 Biểu thức logic với ma trận Để tránh nhầm lẫn cho tất cả trường hợp, ta dùng hàm isequal(A,B). Các hàm logic khác làm việc trên ma trận: isempty(A), ma trận A có rỗng? all(A), tất cả phần tử đều khác 0? any(A), có phần tử khác 0? 7 Switch SWITCH bt_xét CASE tr_hợp1, doan_lenh1 CASE {tr_hợpA, tr_hợpB, tr_hợpC,...} doan_lenh2 ... OTHERWISE, doan_lenh3 END • bt_xét là hằng số hoặc chuỗi ký tự • Chỉ có case nào thoả mãn trước là được thực hiện, không thực hiện các case khác. 8 2/9/2010 5 Switch Ví dụ: switch thang case {1,3,5,7,8,10,12}, ngay=31 case {4,6,9,11}, ngay=30 case 2, if nhuan(nam), ngay=29, else ngay=28, end otherwise, disp(‘thang khong hop le') end 9 Vòng lặp WHILE Cú pháp: WHILE bt_logic Doan_lenh END Ví dụ: n = input(‘n=’); k = 0; while n > 1 n = n/10; k = k+1; end disp(‘so chu so la’) k 10 2/9/2010 6 Vòng lặp FOR FOR k = mang doan_lenh END mỗi bước, k lấy giá trị là từng cột của mang for k = [1 2; 3 4] sum(k) end 4 6 11 Vòng lặp FOR lồng nhau for i = 1:m for j = 1:n H(i,j) = 1/(i+j); end end H = 0.5000 0.3333 0.3333 0.2500 0.2500 0.2000 12 2/9/2010 7 Break break dùng để thoát ngang vòng lặp hiện tại Ví dụ: cho n lớn hơn 2, đoạn lệnh sau kiểm tra n có phải là số nguyên tố for k = 2 : n-1 if mod(n,k)==0 disp(‘n khong nguyen to’) break end end 13
File đính kèm:
- Matlab và ứng dụng - Lệnh điều kiện và vòng lặp.pdf