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