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

