Sei sulla pagina 1di 25

Programming

in
MATLAB
Ciro Donalek

Computa(onal Sta Scien(st


California Ins(tute of Technology

Bi 199 Winter Term 2015


h5p://www.astro.caltech.edu/~donalek/bi199/

Coding...
...experience?
...Matlab? Python? C?

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Summary
Matlab as a Programming language
Tips & Tricks
Variables, Matrices, Arrays

Submatrices and Column Nota(on


Array and Matrix Opera(ons
Pre-AllocaFon

Other Data Structures

Table (new in 2013B)


Categorical Arrays (new in 2013B)
Mul(dimensional Arrays
Structures, Cell Arrays, Strings

Statements Flow

Logical Subscrip(ng, Rela(onal Operators


Loops and Condi(onals, VectorizaFon
Scripts vs. Func(ons

I/O: import/export data


Advanced Programming
Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Matlab Family Products

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Toolboxes
Enhance Matlab
hXp://www.mathworks.com/products/

Code genera(on, tes(ng and deployment


Compiler: build standalone applica(ons;
Coder: build C and C++ shared libraries.

Database Toolbox
exchange data with any rela(onal databases;
Visual Query Builder: easy queries (no SQL needed)

Parallel Toolbox
lets you solve computa(onally and data-intensive
problems using mul(core processors, GPUs, and
computer clusters.
Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Domain specic toolboxes


Math, Sta(s(cs and Op(miza(on
Neural Network, Curve Ficng, etc.

Image Processing and Computer Vision


Computa(onal Biology
Computa(onal Finance
...
Third party toolboxes
Check version and toolboxes installed: >> ver

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Computer Programming
Coding: the act of wri(ng a program in a
programming language.
Keep in mind: anything that can go wrong, will go
wrong Murphys law
Terminology
loop, construct, func(on, script, operator, variable...

Tips & Tricks


general
Matlab specic
Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Programming Languages
hXp://en.wikipedia.org/wiki/List_of_programming_languages

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Best coding prac(ces


Set of informal rules
comment your code
name, purpose, author, usage, date, etc...

give meaningful names


var1, var2, var3 vs diameter, weight, GeneExpression
careful: Awesome may be dierent from awesome
Matlab is case sensi(ve!

portability
eg, path symbol: Windows uses \, Mac/Linux uses /

keep your code simple, test, debug


reuse
hXp://www.mathworks.com/matlabcentral/leexchange/ )
Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Everything is a Matrix
Matlab: Matrix Laboratory

A matrix is a rectangular array of numbers.


scalars can be seen as 1-by-1 matrices
array (vectors) are n-by-1 or 1-by-n matrices;
mul(dimensional arrays: m-by-n;

Matlab is highly op(mized to work with matrices.


It is usually best to think everything as a matrix.
Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Programming in Matlab

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Variables
Allow to assign values to symbolic names
leXer, followed by any number of leXers, digits, or
underscores; naming conven(ons are important.
Matlab is case sensi(ve
a, A are two dierent variables

any length but uses only the rst namelengthmax


names exceeding the maximum numbers of characters
allowed are truncated to the rst namelengthmax characters

isvarname: check if the input is a valid variable name


keywords: reserved words, cannot be used
type iskeyword to see the list of keyword

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Special Variables

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Variables: types
Data types in Matlab
hXp://www.mathworks.com/help/matlab/
data-types_data-types.html
refers to the way in which a computer
represents numbers in memory
determines the amount of storage allocated
to a number; the method used to encode
the number's value as a paXern of binary
digits; and the opera(ons available for
manipula(ng the type.

type in your cw:


>> myName=Ciro;
>> myAge=18;
>> a=eps;
>> whos

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Numerical and Logical Types

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Variables: declara(ons

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Prealloca(on/Inizializa(on

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Entering Matrices

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Entering Matrices

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Submatrices and Column Nota(on

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Matrix Building Func(ons

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Matrix and Vector Func(ons

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Matrix and Array Opera(ons

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Example: Magic Matrix

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Recap

Ciro Donalek Bi199: Programming in Matlab - h5p://www.astro.caltech.edu/~donalek/bi199/

Potrebbero piacerti anche