Theo bài giảng của Danilo Šćepanović - MIT Opencourseware
Nội dung
2. Các cấu trúc điều khiển trong lập trình MATLAB
4. Vẽ đồ thị các hình và mặt 3D
5. Các chú ý khi lập trình MATLAB
1. Lập trình hàm
Hàm do người dùng tự định nghĩa: khá giống với scripts, chỉ khác ở việc cần phải định nghĩa hàm.
Một số chú ý về khai báo hàm:
Không cần từ khóa return để trả về giá trị. MATLAB sẽ tự trả về biến có tên trùng với biến đã được khai báo từ hàm.
Các biến được định nghĩa trong phạm vi hàm nếu không được trả lại sau lời gọi hàm đều sẽ không được MATLAB lưu lại.
Nạp chồng hàm trong MATLAB:
Việc nạp chồng hàm được hiểu đơn giản là các hàm có cùng tên nhưng có nhiều cách đưa tham số vào khác nhau, cách nhận được tham số ra cũng khác nhau.
Trong MATLAB, hầu hết các hàm built-in đều được nạp chồng.
Ví dụ: a = zeros(2,2) ; zero(2,3,4) % Tạo ma trận không kích cỡ nào cũng có thể thực hiện được với lệnh zeros
d = size(a); [m,n] = size(a) ; m2 = size(a, 2)
Để biết được tính năng của các hàm, luôn cần dùng lệnh help
Nếu muốn, bạn cũng có thể nạp chồng hàm bạn viết bằng cách dùng các biến đặc biệt cho biết lượng biến vào và ra ( tham khảo varargin, varargout, nargin, nargout)
Bài tập 1:
1. Viết 1 hàm có phần định nghĩa như sau:
function plotSin(f1) % Hàm không có tham số đầu ra, chỉ có tham số đầu vào là f1
2. Hàm có nhiệm vụ vẽ một hình sin với tần số f1, trong khoảng [0, 2*pi] (sử dụng 16 điểm trong 1 chu kỳ để vẽ hình).
Thực hiện: mở một mfile mới, save as plotSin.m, đánh các dòng sau:
function plotSin(f1)
x = linspace(0,2*pi,f1*16+1)
figure
plot(x,sin(f1*x))
Bài tập 2:
1. Khai báo hàm tính diện tích hình chữ nhật như sau:
function s = squareArea(width, length) % Hàm có 2 tham số vào là chiều dài và chiều rộng, trả về giá trị diện tích hình chữ nhật
2. Viết lệnh để hàm tính diện tích của hình chữ nhật có 2 kích thước là 2 tham số đầu vào.