This page organizes my posts for beginners and advanced users. If you follow the chosen order, you should gradually get a good understanding of how Matlab works and what you can do with it. Examples are provided everywhere to make your learning more entertaining. I update this list regularly with new posts. I hope to slowly build a coherent ensemble of ressources to learn Matlab very efficiently.

**Learning the basics to GET STARTED**

- A short introduction on the past, present and future of numerical computing should set the stage for you.
- Overview of the language : What is Matlab good for and what it is not (
*to be done*). - To start you should first launch matlab and see what you can do with the command line.
- Learn how to use the editor.
- Learn on how to display data on a figure.
- But, hold on, what is a variable, exactly?
- Look into what are the various datatypes available to you.
- The few mathematical operators you need to know.
- The various types of memory in a computer and how Matlab uses them.
- Learn how to get some help.
- Using conditional control flow.
- Using loop control flow, like for loops, or while loops.
- Logical operations and logical indexing in matlab.
- Spend some time on what it means to use an interpreted language, like Matlab.
- Limit your memory usage and preallocate.
- Creating functions and sub-functions.
- Managing a Matlab session and understanding variables scope.
- Using strings in Matlab.
- Using symbolic expressions in Matlab (
*to be done*). - Loading and saving binary files (
*to be done*). - Loading and saving text files (
*to be done*). - Matlab provides you with a set of functions. Some are built-in, some not. You need to understand what it means to you.
- This is very important to your matlab future : learn how to use the profiler.
- Look at some of my tips to write clear code that anyone can understand in Matlab
*.* - Debugging your program.
- What are Matlab toolboxes? (
*to be done*). - Online ressources to learn Matlab, apart from this website (
*to be done*).

**LOOKING SERIOUSLY INTO IT**

- Look into how to make advanced plots in Matlab.
- How to convert between data types.
- Structure and cells can become handy in many cases.
- Dynamic field names and structure (
*to be done*). - If you have never heard of recursive functions, you should read my post on it.
- Learn about how Matlab organize its memory usage and the apparent lack of pointers.
- TIC/TOC versus the profiler (
*to be done*). - What is a short-circuit operator?
- Columns and Rows are not the same in matlab. This will teach you a little on organization of arrays.
- Learn how to use handles in your programs.
- Adding documentation to your code (
*to be done*). - Managing errors with try and catch blocks.
- How to organize your files to grow your program.
- How to encrypt your M-file to share your code in a safe way.
- Overloading functions in Matlab (
*to be done*).

**MAKING USER INTERFACES FOR YOUR PROGRAM **

- Learn how to use GUIDE to make interfaces : Using the Video tutorial or the Text tutorial.
- When you start using interfaces, it becomes very important to understand how to use handles in Matlab.
- GUIDATA is quite a counterintuitive function. I explain it all.
- Passing data from GUI to GUI (
*to be done*). - The M-code created by the GUIDE is a little bit mysterious. This explains it all.
- Take a look at some important point if you wish to share your interface with others.
- Making interfaces without the GUIDE.
- Before you go in very advanced GUIs, look into what has done some programmers to do Games in Matlab.

**LOOKING VERY SERIOUSLY INTO IT**

- The timer object (
*to be done*). - Using pointers in Matlab.
- An introduction to Object oriented programming in Matlab.
- Inheriting classes (to be done).
- Defining class attributes (to be done).
- Matlab thread and Java thread.
- Organizing large datasets in Matlab.
- Store large datasets in Matlab.
- File/folder organization of Matlab distribution (
*to be done*). - Advanced usage of figure parent and children.
- Testing your code (
*to be done*). - Loading binary files in Matlab (
*to be done*). - Matlab and MultiThreading (
*to be done*). - Using the graphic card (GPU) to do processing (
*to be done*). - Deploying your Matlab application out of Matlab (
*to be done*). - Distributing your deployed code.

This is a great blog. I’ve been looking to brush up on matlab and you cover everything clear an concisely. Great job, I can’t wait to see the final product.

good job ,you have described pca in a nice manner. full marks!!!

good job and great information is available for MATLAB beginners.

This blog is outstanding! Many, many, thanks. I just recently started learning MatLab and this blog is top on my bookmarks. Thank you for your time and work. Can’t wait for the “to be done” posts are concluded.

Dude , you are awesome !! thanks for the great effort ..