## A brief introduction to MATLAB

by Jonathan Harel
Some introductory slides on this, together with 3 exercises. (answers)

1. There are
• data stored in variables (*)
• functions which operate on the variables(**)

• (*) variables are usually 1. matrices, 2. cell arrays, or 3. structures.
Here is an example "script" (set of Matlab commands in a file) showing how to create these basic data types: egcreate.m
full list of data types (for reference)

The values in a matrix are of the same numeric type. The most common numeric types are 'double', 'uint8', and 'logical'.
• 'double' is the default numeric type. it stores a 64-bit precision floating-point number.
• 'uint8' is an unsigned integer with 8-bit precision (0 to 255). jpeg images read with imread() come in this format.
• 'logical' can only be 0 or 1. These values arise as a result of a conditional test, e.g. (2==0) evaluates to logical 0.

Another useful type is 'char', which is used to make strings
• Strings begin and end with a single-quote (' = apostrophe). A double quote (") to delimit a string results in an error.
• To put a single quote in a string use two single quotes in a row (''). (not a blackslash escape)
• matlab does not have string interpolation. To put a number in a string, it's best to use sprintf(). One can also use the weaker num2string().

• (**) functions are top-level (no namespace, io.file.open etc.).
Which functions you can call depends on your matlab "path". (that is, matlab will search for a file somewhere in a directory entered in your path which implements the function).

Here is an example function: egfunc.m

Also note that you can count the input arguments with "nargin", and accept a variable number of arguments using "varargin".
Here is an example function using those two: mymessage.m

Large sets of functions are often grouped together into "toolboxes". You don't need to do anything special to access a file from a toolbox. Sometimes - other people have posted just the function you are looking for on "matlab central"; though beginners will probably find everything they need inside Matlab's massive library or one of the standard toolboxes.

2. Indexing (accessing some elements) of a matrix is very important in matlab.
Here is a script showing how to index: egindex.m

3. Finding sums, means, etc. along various dimensions of a matrix is very useful in matlab:
Here is a script showing how to do that: eguseful.m

4. Control flow: if, while, and for statements.
Here is a script which shows some basic control flow: egcontrol.m

NOTE: In Matlab, it is often more efficient to not use loops, and to cast operations in matrix format (operating on entire rows, columns, or matrices at a time).

5. Plotting figures is very important in matlab.

6. Here is a list of more functions you may want to use, type "help [functionname]" at the Matlab prompt to explore these.

image processing
``` imread, imwrite, imshow, imagesc, colormap, conv2, conv ```

utility
``` dir, system, clear, save, whos, profile ```

statistics
``` ttest, ttest2, kstest, kstest2, binomcdf, normcdf, normpdf ```

7. Finally, you can refer to these to learn: