MATLAB là phần mềm cung cấp môi trườngtính toán số vàlập trình, do công tyMathWorks thiết kế. MATLAB cho phép tính toán số vớima trận, vẽđồ thịhàm số hay biểu đồ thông tin, thực hiệnthuật toán, tạo các giao diện người dùng và liên kết với nhữngchương trình máy tính viết trên nhiềungôn ngữ lập trình khác.
Với thư viện Toolbox, MATLAB cho phép mô phỏng tính toán, thực nghiệm nhiều mô hình trong thực tế và kỹ thuật.
Matlab là viết tắt từ "MATrix LABoratory", đượcCleve Moler phát minh vào cuốithập niên 1970, và sau đó là chủ nhiệm khoa máy tính tạiĐại học New Mexico.
MATLAB, nguyên sơ được viết bởi ngôn ngữFortran, cho đến1980 nó vẫn chỉ là một bộ phận được dùng nội bộ củaĐại học Stanford.
Năm1983, Jack Little, một người đã học ởMIT và Stanford, đã viết lại MATLAB bằng ngôn ngữC và nó được xây dựng thêm cácthư viện phục vụ cho thiết kếhệ thống điều khiển, hệ thống hộp công cụ (tool box), mô phỏng... Jack xây dựng MATLAB trở thành mô hìnhngôn ngữ lập trình trên cơ sởma trận (matrix-based programming language).
Steve Bangert là người đã viếttrình thông dịch cho MATLAB. Công việc này kéo dài gần 1½ năm. Sau này,Jack Little kết hợp với Moler vàSteve Bangert quyết định đưa MATLAB thành dự án thương mại - công ty The MathWorks ra đời thời gian này - năm1984.
Phiên bản đầu tiên MATLAB 1.0 ra dời năm 1984 viết bằng C choMS-DOS PC được phát hành đầu tiên tạiIEEE Conference on Design and Control (Hội nghịIEEE về thiết kế và điều khiển) tạiLas Vegas, Nevada. Ban đầu Matlab được phát triển để hỗ trợ sinh viên sử dụng hai thư viện LINPACK và EISPACK dùng cho đại số tuyến tính (viết bằng Fortran) mà không cần biết lập trình Fortran.
Năm1986, MATLAB 2 ra đời trong đó hỗ trợUNIX.
Năm1987, MATLAB 3 phát hành.
Năm1990Simulink 1.0 được phát hành gói chung với MATLAB.
Năm1992 MATLAB 4 thêm vào hỗ trợ2-D và3-D đồ họa màu và các ma trận truy tìm. Năm này cũng cho phát hành phiên bảnMATLAB Student Edition (MATLAB ấn bản cho học sinh).
Năm1993 MATLAB choMS Windows ra đời. Đồng thời công ty này có trang web làwww.mathworks.com
Năm1995 MATLAB choLinux ra đời. Trình dịch MATLAB có khả năng chuyển dịch từ ngôn ngữ MATLAB sang ngôn ngữ C cũng được phát hành trong dịp này.
Năm1996 MATLAB 5 bao gồm thêm cáckiểu dữ liệu, hình ảnh hóa,bộ truy sửa lỗi (debugger), và bộ tạo dựngGUI.
Năm2000 MATLAB 6 cho đổi mới môi trường làm việc MATLAB, thay thế LINPACK và EISPACK bằng LAPACK và BLAS.[2]
Năm2002 MATLAB 6.5 phát hành đã cải thiện tốc độ tính toán, sử dụng phương pháp dịchJIT (Just in Time) và tái hỗ trợMAC.
Năm2004 MATLAB 7 phát hành, có khả năng chính xác đơn và kiểu nguyên, hỗ trợ hàm lồng nhau, công cụ vẽ điểm, và có môi trường phân tích số liệu tương tác.
Đến tháng 12,2008, phiên bản 7.7 được phát hành với SP3 cải thiện Simulink cùng với hơn 75 sản phẩm khác.
Năm2009 cho ra đời 2 phiên bản 7.8 (R2009a) và 7.9 (R2009b).
Năm2010 phiên bản 7.10 (R2010a) cũng đã được phát hành.
Matlab được dùng rộng rãi trong giáo dục, phổ biến nhất là giải cácbài toán số trị (cảđại số tuyến tính lẫngiải tích) trong nhiều lĩnh vựckĩ thuật.
Ngôn ngữ lập trình dùng trong hệ tính toán số cũng có tên gọi làMATLAB. Nó thuộc kiểulập trình thủ tục (với một số đặc điểm củalập trình hướng đối tượng mới được bổ sung trong các phiên bản gần đây.
MatLab có đầy đủ các kiểu dữ liệu đơn giản như: số nguyên, số thực, ký tự, logic (boolean).
Chuỗi ký tự được đặt trong dấu nháy đơn hoặc nháy kép, chẳng hạn"Viet Nam".
Kiểu dãy (sequence) có dạngdau:buoc:cuoi bao gồm một véc-tơ gồm các phần tử bắt đầu từ sốdau tăng dần theo từngbuoc cho đến bằng (không vượt quá) sốcuoi. Kết quả cho ra một véc-tơ hàng:
1.2:0.2:1.7%chú thích: tương đương với [1.2 1.4 1.6]1.2:0.2:1.8%chú thích: tương đương với [1.2 1.4 1.6 1.8]
Kiểuma trận đóng vai trò trung tâm trong MatLab. Ví dụ một ma trận hai hàng ba cột như sau (hết một hàng cần dấu chấm phẩy để phân tách, nhưng không nhất thiết xuống dòng):
MatLab còn có một số kiểu dữ liệu khác cao cấp hơn: kiểucell, kiểustruct (bản ghi).
Các phép cộng trừ hai ma trận cùng kích thước được thực hiện bình thường. Đặc biệt với phép nhân, MatLab phân biệt hai toán tử:* dành cho phép nhân ma trận và.* dành cho nhân từng cặp phần tử tương ứng của hai ma trận.
>>a=[23;24]2324>>a*a% chính là bình phương ma trận A10181222>>a.*a% chỉ là bình phương TỪNG PHẦN TỬ của A49416
Với phép tính lũy thừa cũng tương tự. Chẳng hạn, với ví dụ trên ta có thể viết lần lượt làa^2 vàa.^2.
Trước đây MatLab khôngphân biệt chữ in, chữ thường (giống nhưFortran). Các phiên hơn gần đây lại có sự phân biệt này (theo ngôn ngữC). Cáctừ khóa đều viết chữ thường.
- Lệnh gán có dạng giống như nhiều ngôn ngữ lập trình khác:
tên_biến = giá_trị_biểu thức. Thông thường máy sẽ in ra kết quả của biến sau khi gán, nếu ta không kết thúc lệnh gán bởi dấu;
Ví dụ
t=2*3% hiện thị t = 6t=t+1;% t có giá trị bằng 7 nhưng không hiển thị lên màn hình.
- Khai báo hàm số (ví dụ như hàm bình phương tên tham số vào là
x, tên tham số ra lày:
functiony=binhPhuong(x)y=x*x;end
fori=1:3% chú ý rằng vòng lặp theo dạng dãydisp(1/i)endi=0whilei<4i=i+1;% không cho hiển thị ra màn hìnhdisp(i)% hiển thị giá trị iend
Để tăng tốc độ lập trình, nhất là thao tác từdấu nhắc lệnh, MatLab cho phép nhiều kiểu cú pháp viết tắt. Chẳng hạn để xem hướng dẫn về lệnhplot thì hai câu lệnh sau là tương đương:
doc('plot')docplot% chú thích: cách viết gọn, đồng thời bỏ dấu ngoặc tròn và dấu nháyMột ví dụ nữa là các số trong mộtvéc-tơ hàng không cần có dấu phẩy ngăn cách
v1=[2,3,4]v2=[567]% cũng hợp lệ!
Và ngay cả cách gọi file lệnh từ dấu nhắc cũng là một dạng rút gọn đặc biệt. Chẳng hạn ta cần chạy filetinhtong.m trongthư mục hiện hành:
Vẽđồ thị là một tính năng được trau chuốt trong MatLab; với rất nhiều kiểu đồ thị khác nhau như biểu đồ dạng đường, biểu đồ chấm điểm, các lớp màu (patch) hai chiều,đường đồng mức và cácđường cong,mặt congba chiều. Ngoài ra MatLab còn cung cấp giao diện để người dùng trực tiếp biên tập hình vẽ, điền vào các ghi chú theo ý muốn.
- Vẽ đồ thị dạng đường
Giả sử có dãy số liệuV đo theo thời giant. Trong MatLab,V vàt đều có dạng vec tơ có cùng độ dài. Khi đó lệnh vẽ đồ thị với trục hoành làt và trục tung làV có dạng:
plot(t,V)xlabel('t (s)')% viết tiêu đề các trụcylabel('V (m/s)')- Vẽ đồ thị dạng lớp màu
Một cách hiệu quả để biểu thị cáctrường vật lý trong không gian hai chiều là dùng lớp màu. Chẳng hạnT là một ma trận 2 chiều lưu giữ giá trị nhiệt độ của một tấm kim loại hình chữ nhật, thì việc hiển thị phân phối nhiệt độ bằng một lớp màu được thực hiện dễ dàng:
- Vẽ trường vec tơ
Cũng như đồ thị lớp màu, việc hiển thịtrường vec tơ rất cần thiết trong các ngành khoa học - vật lý. Để vẽ trường véc-tơ hai chiều của các ma trậnu vàv, dùng lệnh:
- The MathWorks News & Note. Magazine for MATLAB and Simulink. tháng 1 năm 2006
- Octave, dự ánGNU tạo ra môi trường tính toán số tự do tương tự như MATLAB.
- Scilab, môi trường tính toán số tự do khác tương tự như MATLAB.
- Maple, phần mềm tương tự có bản quyền
- Mathematica, phần mềm tương tự có bản quyền
Wikimedia Commons có thêm hình ảnh và phương tiện về
MATLAB.