Mở đầu cho loạt bài Tự học Matlab, tôi sẽ giới thiệu sơ lược về matlab, cách cài đặt, những việc cần chuẩn bị cũng như các nguồn tham khảo.
Mục đích của loạt bài
Do Matlab rất đồ sộ và đa dạng với rất nhiều mục đích sử dụng khác nhau nên nếu bạn cần tìm kiếm một nguồn tài liệu đầy đủ về Matlab thì đây không phải là nơi bạn cần tìm. Loạt bài này chỉ nhằm mục đích giúp bạn làm quen với Matlab và sau đó hình thành trong bạn khả năng tự học và tự tìm tòi về Matlab dành cho mục đích riêng của bạn. Tôi cũng sẽ bày cho bạn cách tự học và tìm tòi này.
Sau loạt bài, tôi chủ yếu viết về những thủ thuật, các câu trả lời, kỹ thuật hay và lẻ tẻ về Matlab để hỗ trợ thêm cho các bạn.
Cách học?
Thật ra đây là cách mà Tôi Tự Học triển khai viết về Matlab cũng như các ngôn ngữ lập trình khác
- Những thứ cơ bản nhất (cú pháp chung, lưu ý,…)
- Các ví dụ nhỏ để làm quen (cơ bản)
- Dự án trung bình để quen nhiều hơn (nâng cao hơn)
- Các tips nhỏ lẻ, trả lời cho các câu hỏi,… (không phân loại, viết xen kẽ với 2 và 3)
Matlab là gì?
MATLAB, viết tắt của MATrix LABoratory, là một môi trường lập trình đầy đủ. Nó có cả ngôn ngữ riêng (file script với đuôi .m), tích hợp luôn trình soạn thảo (IDE), các thư viện cần thiết và rất rất nhiều cái khác. Chỉ cần tải Matlab về máy và cài đặt là bạn có thể bắt đầu làm việc với nó.
Như tên gọi của nó, matlab làm việc hoàn toàn trên các ma trận. Ngay cả một số thực bình thường cũng được chứa trong một ma trận có kích thước 1×1. Chính vì đặc điểm này mà nó hỗ trợ tốt khi làm việc với các ma trận, các chỉ số,… Matlab được thiết kế rất thích hợp với việc lập trình mô phỏng cũng như lập trình tính toán trong các phương pháp số.
Cần gì để có thể học được Matlab?
Nếu bạn có chút hiểu biết về lập trình và toán đại số tuyến tính, đại số cao cấp thì sẽ có nhiều lợi thế trong việc học matlab. Tuy nhiên điều ấy là không bắt buộc. Loạt bài này được thiết kế dành bạn trong trường hợp bạn chưa có gì trong tay (Tất nhiên tôi chỉ cố gắng làm việc này vì bản thân tôi không có cùng xuất phát điểm như thế nhưng lại cố gắng viết cho những người như thế. Đó là lý do cấu trúc bài viết sẽ được cải tiến theo thời gian.).
Khi nào nên chọn dùng Matlab?
Đây là một câu hỏi không dễ trả lời. Với tôi, do yêu cầu học tập rồi sau đó làm việc, các giáo sư yêu cầu mình dùng matlab thì mình dùng thôi. Tôi sẽ cố gắng tìm hiểu thêm để dành cho những ai chưa có nhu cầu nhưng sẽ biết được có nên dùng matlab hay không.
- Thật ra người dùng matlab thường không phải là dân lập trình chính hiệu, tập trung thường là dân toán và dân nghiên cứu. Lý do matlab hỗ trợ bộ toolbox rất đa dạng nên những người không chuyên về lập trình thường chọn nó để làm cho công việc trở nên nhanh hơn (họ không phải code lại những thư viện hay toolbox cơ bản).
- Nếu là dân lập trình chính thống, thường là họ chọn Python, C++ (ở đây tôi đang nói về nhu cầu nghiên cứu, tính toán và học thuật)
- Nếu bạn làm trong lĩnh vực toán ứng dụng (giải tích số, thống kê,…) thì matlab rất phù hợp.
- Matlab cũng hỗ trợ tốt cho bên xử lý ảnh (tuy matlab chạy khá chậm so với C++ nhưng có những tool giúp bạn chuyển matlab sang C++ và chạy dưới nền C++)
- Matlab cũng có thể phù hợp với những ai đang học Machine Learning, AI, data (dù rằng mọi người thường chọn Python nhiều hơn)
- Một trong những điểm cộng rất lớn của matlab chính là khả năng vẽ vời của nó. Nó có rất rất nhiều cách và công cụ hỗ trợ biểu diễn dữ liệu, hình ảnh và quan trọng là chúng rất dễ sử dụng.
Khi nào không nên dùng Matlab?
- Khi bạn không giàu: phiên bản thương mại của matlab rất mắc, khi ấy lựa chọn tương đương là Octave, Scilab hay Sage vì chúng miễn phí (nhưng yếu hơn).
- Khi muốn học lập trình nói chung: Matlab được thiết kế riêng cho tính toán khoa học trong khi nói về lập trình là nói về rất rất nhiều thứ khác mà matlab không hỗ trợ (lập trình web, backend, thiết kế giao diện, lập trình ứng dụng,…). Hơn nữa trong matlab hỗ trợ “sẵn” quá nhiều thứ trong khi bạn cần phải học cách viết lại những thứ cơ bản này để bước chân vào thế giới lập trình. Khi ấy Python sẽ là lựa chọn tốt hơn.
- Khi bạn là dân lập trình và muốn chương trình chạy nhanh: Matlab là một ngôn ngữ bán diễn dịch (semi-interpreted language) trong khi những ngôn ngữ như C/C++ là ngôn ngữ biên dịch (compiled language). Ngôn ngữ diễn dịch chạy trực tiếp các dòng code và cần phải được dịch ra ngôn ngữ máy trước khi bạn có thể thấy kết quả. Trong khi đó, ngôn ngữ biên dịch được biên dịch trực tiếp ra ngôn ngữ máy nên tất nhiên nó sẽ chạy nhanh hơn rất nhiều. Lợi thế của ngôn ngữ diễn dịch là nó gần với ngôn ngữ con người hơn nên dễ học, dễ quản lý code hơn nhưng nó lại chậm hơn.
- Khi máy bạn không đủ mạnh: Các phiên bản mới của matlab khi chạy ngốn một lượng RAM không nhỏ.
Cài đặt Matlab
- Loạt bài này giả sử bạn đã có matlab trên máy của mình. Hiện tôi đang dùng phiên bản MATLAB R2016b. Tôi khuyên bạn nên dùng các phiên bản từ sau 2012 vì kể từ ấy, giao diện matlab được thiết kế theo dạng Ribbon của Microsoft Office (chia các tùy chọn theo tab), rất dễ thao tác.
- Cần lưu ý, chúng ta cần các phiên bản matlab khác nhau dành cho các hệ điều hành khác nhau. Ví dụ cùng số hiệu MATLAB 2016b, sẽ có 3 phiên bản khác nhau cho 3 hệ điều hành khác nhau (UNIX, MACOS, WINDOWS).
- Nếu bạn gặp rắc rối trong việc cài đặt matlab trên unix/ubuntu, bạn có thể để lại comment bên dưới bài viết này, Math2IT sẽ giúp đỡ bạn.
- Không phải tất cả các phiên bản đều tương thích với mọi phiên bản của hệ điều hành Windows. Ví dụ Windows 10 chỉ có thể cài được matlab 2015 trở về sau. Để có thể biết được phiên bản matlab nào phù hợp với phiên bản hệ điều hành nào của Windows, bạn có thể xem hình bên dưới. Với các bản gần mới nhất, bạn có thể xem trên trang chủ của Mathworks.
Tài liệu tham khảo
Có rất nhiều tài liệu, video, blog, website viết về matlab trên mạng. Các bạn có thể gõ tìm trên Google. Bên dưới đây tôi xin chọn ra vài tài liệu hay và điển hình để bạn có thể tham khảo thêm bên cạnh việc đọc loạt bài này.
- Matlab documentation: Tài liệu tham khảo chính của matlab. Khi bạn đã có khả năng tự học, bạn sẽ dựa chủ yếu trên tài liệu này. Chỉ việc gõ vào khung tìm kiếm những từ khóa cần thiết, bạn có thể tìm thấy giải thích cách dùng cho các câu lệnh cũng như các ví dụ liên quan. Hiện tại tôi sử dụng chủ yếu cái này.
Bạn cũng có thể mở trình documentation này offline với ứng dụng matlab đã được cài đặt. Cách 1, gõ vào khung tìm kiếm ở góc trên bên phải của trình IDE matlab. Cách 2, gõhelp <câu-lệnh>
và gõ Enter. - Matlab central: nơi để bạn tìm thấy những chia sẻ từ cộng đồng sử dụng matlab. Trong đây, đáng giá nhất gồm Matlab Example (các ví dụ về matlab), File Exchange (trao đổi các files, hàm đã được viết sẵn bởi người dùng), Matlab Answer (hỏi và thảo luận về matlab). Thật ra khi bạn tìm kiếm trên Google, bạn sẽ được dẫn tới một trong những link này.
- Matlabtips.com: Một trang web khá đầy đủ và có hệ thống viết về matlab. Math2IT cũng dựa nhiều vào cấu trúc của trang này để viết nên loạt bài này.
- TutorialsPoint/matlab: chuyên trang về matlab của trang TP, rất hay và chi tiết.
- Get start with Matlab: file pdf từ MathWorks viết về Matlab từ cơ bản.
- PDF documentation for Matlab: bộ tài liệu file pdfs từ MathWorks.
- Learn to code with Matlab: course học lập trình với Matlab dưới dạng tương tác dành cho người mới bắt đầu biết code (từ 12 tuổi trở lên). Nó đã tích hợp trình soạn thảo matlab đơn giản trên nền web nên bạn không cần phải cài trước matlab làm gì. Bạn cần phải đăng ký tài khoản MathWorks trước khi học.
- Undocumented Matlab: Những thủ thuật matlab độc và lạ vốn không được biết đến một cách chính thống.
- Chuyên trang Matlab trên Reddit: dành cho fan cuồng Reddit.
- MatlabHelper: vài thủ thuật bổ ích.