2/9/2010

Viết hàm trong Matlab Viết hàm trong Matlab

…nhập, xuất … …nhập, xuất … …function… …function…

ntnhut@hcmus.edu.vn ntnhut@hcmus.edu.vn

11

(cid:17)hắc lại file script .m (cid:17)hắc lại file script .m

k = k+1; k = k+1;

endend if k<=n if k<=n

n', k) fprintf('so can tim o vi tri %d \\n', k) fprintf('so can tim o vi tri %d

else else

disp('khong co trong mang ') disp('khong co trong mang ')

endend

22

Ví dụ: soạn thảo script sau lưu vào file ‘timso.m’ (cid:1)(cid:1) Ví dụ: soạn thảo script sau lưu vào file ‘timso.m’ disp('chuong trinh tim mot so trong mot mang so') disp('chuong trinh tim mot so trong mot mang so') a = input('nhap vao mang so : '); a = input('nhap vao mang so : '); key = input('nhap vao so can tim: '); key = input('nhap vao so can tim: '); k = 1; k = 1; n = length(a); n = length(a); while (k<=n)&(a(k)~=key) while (k<=n)&(a(k)~=key)

1

2/9/2010

33

Khi thực thi file ‘timso.m’ trên cửa sổ dòng lệnh Matlab: (cid:1)(cid:1) Khi thực thi file ‘timso.m’ trên cửa sổ dòng lệnh Matlab: >>timso >>timso chuong trinh tim mot so trong mot mang so chuong trinh tim mot so trong mot mang so nhap vao mang so : [5 2 1 1 0 5] nhap vao mang so : [5 2 1 --1 0 5] nhap vao so can tim: 5 nhap vao so can tim: 5 so can tim o vi tri 1 so can tim o vi tri 1

(cid:17)hập / Xuất (cid:17)hập / Xuất

x = input(‘chuoi thong bao’) Nhập: x = input(‘chuoi thong bao’)

(cid:1)(cid:1) Nhập: (cid:1)(cid:1) XuấtXuất::

44

: số chấm động %f %f : số chấm động %c %c : ký tự : ký tự : TAB \\t t : TAB : ký tự ‘%’ %% %% : ký tự ‘%’

disp(‘chuoi ky tu’) (cid:1)(cid:1) disp(‘chuoi ky tu’) (cid:1)(cid:1) fprintf(‘chuoi co dinh dang’) fprintf(‘chuoi co dinh dang’) (cid:1)(cid:1) Định dạng của fprintf:: Định dạng của fprintf : số nguyên (cid:1)(cid:1) %d%d: số nguyên : chuỗi (cid:1)(cid:1) %s %s : chuỗi (cid:1)(cid:1) \\n n : xuống dòng : xuống dòng : ký tự ‘\\’’ : ký tự ‘ (cid:1)(cid:1) \\\\ Ví dụ: (cid:1)(cid:1) Ví dụ: x = input(‘nhap 1 so nguyen x = ’); x = input(‘nhap 1 so nguyen x = ’); fprintf(‘gia tri cua x la %d’, x); fprintf(‘gia tri cua x la %d’, x);

2

2/9/2010

Disp và fprintf Disp và fprintf

Ví dụ 1: (cid:1)(cid:1) Ví dụ 1: a = input(‘So thu nhat = ’); a = input(‘So thu nhat = ’); b = input(‘So thu hai = ’); b = input(‘So thu hai = ’); disp(‘UCL(cid:17) cua a va b la ’) disp(‘UCL(cid:17) cua a va b la ’) disp(gcd(a,b)) disp(gcd(a,b)) disp(‘BC(cid:17)(cid:17) cua a va b la ’) disp(‘BC(cid:17)(cid:17) cua a va b la ’) disp(lcm(a,b)) disp(lcm(a,b)) Ví dụ 2: (cid:1)(cid:1) Ví dụ 2: a = input(‘So thu nhat = ’); a = input(‘So thu nhat = ’); b = input(‘So thu hai = ’); b = input(‘So thu hai = ’); fprintf(‘UCL(cid:17) cua %d va %d la %d \\n’, a, b, gcd(a,b)) fprintf(‘UCL(cid:17) cua %d va %d la %d n’, a, b, gcd(a,b)) n’, a, b, lcm(a,b)) fprintf(‘BC(cid:17)(cid:17) cua %d va %d la %d \\n’, a, b, lcm(a,b)) fprintf(‘BC(cid:17)(cid:17) cua %d va %d la %d

55

Function Function

trong Matlab là một file.m có thể nhận tham số (cid:1)(cid:1) HàmHàm trong Matlab là một file.m có thể nhận tham số

và trả về các giá trị. và trả về các giá trị. Tên hàm phải trùng với tên file.m. Gọi lệnh bằng cách (cid:1)(cid:1) Tên hàm phải trùng với tên file.m. Gọi lệnh bằng cách gõ tên hàm (tên file.m) gõ tên hàm (tên file.m) Cú pháp: (cid:1)(cid:1) Cú pháp: function tri_tra_ve = ten_ham(tham_so) function tri_tra_ve = ten_ham(tham_so) ... ... Ví dụ: % tbc.m % tbc.m (cid:1)(cid:1) Ví dụ: function s = tbc(x) function s = tbc(x) s = sum(x(:))/length(x(:)); s = sum(x(:))/length(x(:)); Gọi lệnh: (cid:1)(cid:1) Gọi lệnh:

>>t = tbc([2 3 4 5 6]) % t sẽ bằng 4 >>t = tbc([2 3 4 5 6])

% t sẽ bằng 4 66

3

2/9/2010

Ví dụ function Ví dụ function

% UBC.m Script: % UBC.m

(cid:1)(cid:1) Script: function [m,n] = UBC(a,b) function [m,n] = UBC(a,b) m = gcd(a,b); m = gcd(a,b); n = lcm(a,b); n = lcm(a,b); Gọi hàm: (cid:1)(cid:1) Gọi hàm: >> [uoc, boi] = UBC(45,234) >> [uoc, boi] = UBC(45,234) >> uoc >> uoc ans = 9 ans = 9 >> boi >> boi ans = 1170 ans = 1170

77

Hàm phụ Hàm phụ

(cid:1)(cid:1) Ví dụ:

Hàm phụ (cid:1)(cid:1) Hàm phụ (khác tên hàm chính) chỉ nhằm hỗ trợ tính toán (cid:1)(cid:1) (khác tên hàm chính) chỉ nhằm hỗ trợ tính toán cho hàm chính trong script hàm cho hàm chính trong script hàm Hàm phụ nằm sau hàm chính (cid:1)(cid:1) Hàm phụ nằm sau hàm chính Ví dụ: % chinh.m % chinh.m function c = chinh(A) function c = chinh(A) (A) –– 11 c = c = phuphu(A)

88

function d = (B) function d = phuphu(B) d = min(B(:)) d = min(B(:)) Gọi hàm: (cid:1)(cid:1) Gọi hàm: >> chinh([23 2 34]) >> chinh([23 2 34]) ans = 1 ans = 1

4