MATLAB phiên bản 7.3.0 (R2006b) | |
Phát triển bởi | MathWorks |
---|---|
Phiên bản ổn định | R2020b
/ 2020 |
Viết bằng | C, C++, Java |
Hệ điều hành | Windows, macOS, and Linux |
Thể loại | Môi trường tính toán, Ngôn ngữ lập trình |
Giấy phép | Bản quyền của MathWorks Inc. |
Website | http://www.mathworks.com/ |
MATLAB là phần mềm tính toán và lập trình được phát triển bởi công ty MathWorks. Nó hỗ trợ các phép toán ma trận, vẽ đồ thị hàm số và biểu đồ, thực hiện các thuật toán, tạo giao diện người dùng và tích hợp với các chương trình viết bằng nhiều ngôn ngữ khác.
Với thư viện Toolbox, MATLAB cung cấp khả năng mô phỏng và thử nghiệm các mô hình trong nhiều lĩnh vực thực tế và kỹ thuật.
Lịch sử
MATLAB là viết tắt của 'MATrix LABoratory', được Cleve Moler phát triển vào cuối thập niên 1970, khi ông là trưởng khoa máy tính tại Đại học New Mexico.
MATLAB, ban đầu được viết bằng ngôn ngữ Fortran, chỉ là công cụ nội bộ của Đại học Stanford cho đến năm 1980.
Vào năm 1983, Jack Little, một cựu sinh viên MIT và Stanford, đã viết lại MATLAB bằng ngôn ngữ C và mở rộng thêm các thư viện cho thiết kế hệ thống điều khiển, công cụ hộp công cụ (tool box), mô phỏng... Jack đã phát triển MATLAB thành một ngôn ngữ lập trình dựa trên ma trận (matrix-based programming language).
Steve Bangert là người đã phát triển trình thông dịch cho MATLAB, công việc kéo dài khoảng 1½ năm. Sau đó, Jack Little cùng với Moler và Steve Bangert quyết định biến MATLAB thành một dự án thương mại, dẫn đến sự ra đời của công ty The MathWorks vào năm 1984.
Phiên bản MATLAB 1.0, được viết bằng C cho MS-DOS PC, được phát hành lần đầu vào năm 1984 tại IEEE Conference on Design and Control (Hội nghị IEEE về thiết kế và điều khiển) tại Las Vegas, Nevada. MATLAB ban đầu được phát triển để hỗ trợ sinh viên sử dụng hai thư viện LINPACK và EISPACK cho đại số tuyến tính (viết bằng Fortran) mà không cần biết lập trình Fortran.
MATLAB 2 ra đời vào năm 1986, hỗ trợ hệ điều hành UNIX.
Năm 1987, phiên bản MATLAB 3 được phát hành.
Năm 1990, Simulink 1.0 được phát hành kèm theo MATLAB.
Năm 1992, MATLAB 4 giới thiệu hỗ trợ đồ họa màu 2-D và 3-D cùng với các ma trận tìm kiếm. Cũng trong năm này, phiên bản MATLAB Student Edition (MATLAB dành cho học sinh) được phát hành.
Năm 1993, MATLAB phiên bản cho MS Windows được ra mắt. Công ty cũng công bố trang web www.mathworks.com.
Năm 1995, MATLAB phiên bản cho Linux được phát hành. Cùng thời điểm, công cụ dịch MATLAB sang ngôn ngữ C cũng được giới thiệu.
Năm 1996, MATLAB 5 bổ sung thêm các kiểu dữ liệu mới, khả năng hình ảnh hóa, công cụ gỡ lỗi (debugger), và bộ công cụ tạo giao diện người dùng GUI.
Năm 2000, MATLAB 6 giới thiệu môi trường làm việc mới, thay thế các thư viện LINPACK và EISPACK bằng LAPACK và BLAS.
Năm 2002, MATLAB 6.5 được phát hành với cải tiến về tốc độ tính toán, sử dụng phương pháp dịch JIT (Just in Time), và phục hồi hỗ trợ cho MAC.
Năm 2004, MATLAB 7 ra mắt với tính năng hỗ trợ chính xác đơn và kiểu nguyên, hàm lồng nhau, công cụ vẽ điểm, và môi trường phân tích số liệu tương tác.
Đến tháng 12 năm 2008, phiên bản 7.7 được phát hành với bản cập nhật SP3, cải thiện Simulink và thêm hơn 75 sản phẩm khác.
Năm 2009, hai phiên bản MATLAB 7.8 (R2009a) và 7.9 (R2009b) được phát hành.
Năm 2010, phiên bản MATLAB 7.10 (R2010a) cũng đã được ra mắt.
MATLAB được ứng dụng rộng rãi trong giáo dục, đặc biệt trong việc giải các bài toán số trị, bao gồm cả đại số tuyến tính và giải tích, trong nhiều lĩnh vực kỹ thuật.
Ngôn ngữ lập trình
Ngôn ngữ lập trình được sử dụng trong hệ thống tính toán số cũng mang tên MATLAB. Nó chủ yếu là ngôn ngữ lập trình thủ tục, nhưng gần đây đã bổ sung một số tính năng của lập trình hướng đối tượng.
Các loại dữ liệu
MATLAB hỗ trợ đầy đủ các kiểu dữ liệu cơ bản như: số nguyên, số thực, ký tự, và kiểu logic (boolean).
Chuỗi ký tự có thể được đặt trong dấu nháy đơn hoặc nháy kép, ví dụ như 'Viet Nam'
.
Kiểu dãy (sequence) có cú pháp dau:buoc
, tạo ra một véc-tơ bắt đầu từ số dau
và tăng theo bước buoc
cho đến số cuoi
(hoặc không vượt quá). Kết quả là một véc-tơ hàng:
1.2:0.2:1.7 %giải thích: tương đương với [1.2 1.4 1.6] 1.2:0.2:1.8 %giải thích: tương đương với [1.2 1.4 1.6 1.8]
Ma trận là yếu tố chính trong MATLAB. Ví dụ về ma trận với hai hàng và ba cột như sau (dấu chấm phẩy phân cách các hàng, không cần xuống dòng):
[ -3 45.2; 2.1 -8 7.6 ]
MATLAB cũng hỗ trợ một số kiểu dữ liệu nâng cao khác như: kiểu cell và kiểu struct (bản ghi).
Phép toán với ma trận
Các phép cộng và trừ giữa hai ma trận cùng kích thước thực hiện như bình thường. Đặc biệt, phép nhân trong MATLAB có hai toán tử: cho phép nhân ma trận và
.
cho phép nhân từng phần tử tương ứng của hai ma trận.
Tính toán lũy thừa trong MATLAB tương tự như các phép toán khác. Ví dụ, ta có thể sử dụng a^2
và a.^2
cho ma trận a.
Cú pháp
MATLAB trước đây không phân biệt chữ hoa và chữ thường, tương tự như Fortran. Tuy nhiên, các phiên bản gần đây đã thay đổi để phân biệt chữ hoa và chữ thường như trong ngôn ngữ C. Tất cả từ khóa đều sử dụng chữ thường.
- Cú pháp lệnh gán tương tự như các ngôn ngữ lập trình khác:
tên_biến = giá_trị_biểu_thức
. Thông thường, kết quả của biến sẽ được in ra nếu lệnh gán không kết thúc bằng dấu;
Ví dụ
t = 2 3 % t sẽ có giá trị bằng 6 t = t + 1; % giá trị t trở thành 7 nhưng không hiển thị
- Khai báo hàm với ví dụ hàm tính bình phương với tham số đầu vào là
x
và kết quả trả về lày
:
function y = binhPhuong(x) y = x x; end
- Cấu trúc điều kiện và vòng lặp:
for i = 1:3 % chú ý: vòng lặp với dãy số disp(1/i) end i = 0 while i < 4 i = i + 1; % không hiển thị ra màn hình disp(i) % hiển thị giá trị của i end
Cú pháp đặc biệt (syntactic sugar)
Để làm việc nhanh hơn, đặc biệt từ dấu nhắc lệnh, MatLab hỗ trợ nhiều cú pháp viết tắt. Ví dụ, để tra cứu hướng dẫn lệnh plot
, bạn có thể dùng hai cách sau đây:
doc('plot') doc plot % chú thích: viết gọn hơn, bỏ dấu ngoặc và dấu nháy
Một ví dụ khác là bạn có thể viết số trong véc-tơ hàng mà không cần dấu phẩy phân cách
v1 = [2 3 4] v2 = [5 6 7] % cũng được chấp nhận!
Cách gọi file lệnh từ dấu nhắc cũng được rút gọn đặc biệt. Ví dụ, để chạy file tinhtong.m
trong thư mục hiện tại, bạn thực hiện như sau:
Tính năng vẽ đồ thị
Vẽ đồ thị là một tính năng rất tinh tế trong MatLab; hỗ trợ nhiều loại đồ thị như biểu đồ đường, biểu đồ chấm, các lớp màu hai chiều (patch), đường đồng mức, đường cong, và mặt cong ba chiều. MatLab cũng cung cấp giao diện cho phép người dùng trực tiếp chỉnh sửa hình vẽ và thêm các ghi chú tùy ý.
- Vẽ đồ thị dạng đường
Giả sử bạn có một dãy số liệu V theo thời gian t. Trong MatLab, cả V và t đều là véc-tơ có cùng độ dài. Để vẽ đồ thị với trục hoành là t và trục tung là V, bạn dùng lệnh sau:
plot(t, V) xlabel('t (s)') % đặt tiêu đề cho trục hoành ylabel('V (m/s)')
- Vẽ đồ thị lớp màu
Để thể hiện các trường vật lý trong không gian hai chiều, bạn có thể sử dụng lớp màu. Ví dụ, nếu T là ma trận 2 chiều lưu trữ giá trị nhiệt độ của một tấm kim loại chữ nhật, bạn có thể dễ dàng hiển thị phân phối nhiệt độ bằng lớp màu như sau:
pcolor(T)
- Vẽ trường vectơ
Tương tự như việc hiển thị lớp màu, vẽ trường vectơ cũng rất quan trọng trong các lĩnh vực khoa học và vật lý. Để tạo đồ thị trường véc-tơ hai chiều từ các ma trận u và v, sử dụng lệnh sau:
quiver(u,v)
- The MathWorks News & Note. Tạp chí cho MATLAB và Simulink, tháng 1 năm 2006
- Octave, dự án GNU cung cấp môi trường tính toán số tương tự MATLAB.
- Scilab, một môi trường tính toán số miễn phí khác tương tự MATLAB.
- Maple, phần mềm tính toán có bản quyền tương tự MATLAB.
- Mathematica, phần mềm tính toán có bản quyền tương tự MATLAB.
Liên kết bên ngoài
- Website chính thức