Software‎ > ‎Tracking Neutrophils‎ > ‎

Introduction to Matlab

Matlab commands and variables

Matlab, MATrix LABoratory, is a powerful, high level language and a technical computing environment which provides core mathematics and advanced graphical tools for data analysis, visualisation, and algorithm and application development. It is intuitive and easy to use. Many common functions have already been programmed in the main program or on one of the many toolboxes. In MATLAB everything is a matrix, (this is the mantra: everything is a matrix) and therefore it is a bit different from other programming languages, such as C or JAVA. Matrix operations are programmed so that element-wise operations or linear combinations are more efficient than loops over the array elements. The for instruction is recommended only as last resource.

A matrix should be understood in the mathematical sense:

% 
% "A rectangular array of symbols or mathematical expressions arranged in
% rows and columns, treated as a single entity, and now usually written within
% round brackets"

and not as (other definitions from the Oxford dictionary) an uterus of a mammal or the amorphous or fibrillar material that surrounds cells. The simplest matrix is a 1 x 1 array with one scalar value, or a single number. This value can be assigned to a variable which will store the value and can later be used in conjunction with other variables. For example to store the value 5 in a matrix with the name "a", the following code is typed in the coomand window after the prompt (>>):

a=5
a =

5

After pressing enter the value is stored, the workspace will show the an entry for "a" and Matlab will "echo" the answer to the command entered. In this case, the echo just repeats what was typed before, but it can be used with more complex data. For instance:

b = 45 + 123 +  a
b =

173

In this way, Matlab can be used as a calculator and no variables are required if the resulting value is not to be stored, Matlab will store it in a temporary variable called 'ans'. The order of precedence in which the operations are carried out is exponentiation, then multiplication/division and then addition and subtraction, but this can be modified by using parenthesis. For instance:

1 + 2 * 3 ^ 4
ans =

163

is equivalent to:

1 + (2 * (3 ^ 4))
ans =

163

and is different from

(((1 + 2) * 3) ^ 4)
ans =

6561

Matrix operations are programmed in Matlab so that element-wise operations or linear combinations are more efficient than loops over the array elements and therefore Matlab is a bit different from other programming languages, such as C or JAVA. The for instruction is not as widely used as in C. Once you are in MATLAB, many UNIX commands can be used: pwd, cd, ls, .... To get help over any command you can type:

help sum
 SUM Sum of elements.
S = SUM(X) is the sum of the elements of the vector X. If
X is a matrix, S is a row vector with the sum over each
column. For N-D arrays, SUM(X) operates along the first
non-singleton dimension.
If X is floating point, that is double or single, S is
accumulated natively, that is in the same class as X,
and S has the same class as X. If X is not floating point,
S is accumulated in double and S has class double.

S = SUM(X,DIM) sums along the dimension DIM.

S = SUM(X,'double') and S = SUM(X,DIM,'double') accumulate
S in double and S has class double, even if X is single.

S = SUM(X,'native') and S = SUM(X,DIM,'native') accumulate
S natively and S has the same class as X.

Examples:
If X = [0 1 2
3 4 5]

then sum(X,1) is [3 5 7] and sum(X,2) is [ 3
12];

If X = int8(1:20) then sum(X) accumulates in double and the
result is double(210) while sum(X,'native') accumulates in
int8, but overflows and saturates to int8(127).

See also PROD, CUMSUM, DIFF, ACCUMARRAY, ISFLOAT.

Overloaded functions or methods (ones with the same name in other directories)
help timeseries/sum.m
help darray/sum.m
help umat/sum.m
help ndlft/sum.m
help sym/sum.m

Reference page in Help browser
doc sum

To create a matrix you can type its values directly:

x = [ 1 2 3 4 5 6 7 8 9 10 ];

Which is equivalent to:

x = 1:10;

where only initial and final values are specified. It is possible to define the initial and final value and increment (lower limit: increment: upper limit) using the colon operator in the following way:

z = 0 : 0.1 :20;

Both are 1 x 10 matrices. Note that this would be different from:

y = [1;2;3;4;5;6;7;8;9;10];

or

y=[1:10]';

Both are 10 x 1 matrices. The product x*y would yield the inner product of the vectors, a single value, y*x would yield the outer product, a 10 x 10 matrix, while the products x*x and y*y are not valid because the matrix dimensions do not agree. If element-to-element operations are desired then a dot "." before the operator can be used, e. g. x.*x would multiply the elements of the vectors:

x*y
ans =

385

y*x
ans =

1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100

x.*x
ans =

1 4 9 16 25 36 49 64 81 100

The Matrix obtained by typing:

mat = [1 2 3 4;2 3 4 5;3 4 5 6;4 5 6 7]
mat =

1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7

The final semicolon (;) inhibits the echo to the screen. Any individual value of the matrix can be read by typing (without the semicolon):

mat (2,2)
ans =

3

Mathematical functions can be used over the defined matrices, for example:

s1 = sin (z);

A column or line of a matrix can be obtained from another one:

s2(1,:) = -s1/2;
s2(2,:) = s1;
s2(3,:) = s1 * 4;

To display a 1D matrix you can use plot, and for 2D you can use mesh, Figure 1 shows the result of typing:


plot(s1);


mesh(s2);


1.1 Use help for the following functions. sign subplot abs imshow surf colormap sum cumsum fix round subplot whos title for who sqrt conv floor det fft abs semilogx axes axis zeros ones rand randn pi real

% 1.2	There are many toolboxes  with specialised functions, try:

% help images Image processing toolbox.
% help signal Signal processing toolbox.
% help stats Statistics toolbox
% help nnet Neural networks toolbox

% 1.3 To find out which toolboxes you have installed type ver:

ver
-------------------------------------------------------------------------------------
MATLAB Version 7.4.0.287 (R2007a)
MATLAB License Number: XXXXX
Operating System: Mac OS X Version: 10.5.8 Build: 9L30
Java VM Version: Java 1.5.0_24 with Apple Inc. Java HotSpot(TM) Client VM mixed mode, sharing
-------------------------------------------------------------------------------------
MATLAB Version 7.4 (R2007a)
Simulink Version 6.6 (R2007a)
Aerospace Blockset Version 2.3 (R2007a)
Aerospace Toolbox Version 1.1 (R2007a)
Bioinformatics Toolbox Version 2.5 (R2007a)
CStruct Toolbox Version 2.0.1
Communications Blockset Version 3.5 (R2007a)
Communications Toolbox Version 3.5 (R2007a)
Control System Toolbox Version 8.0 (R2007a)
Curve Fitting Toolbox Version 1.1.7 (R2007a)
Database Toolbox Version 3.3 (R2007a)
Distributed Computing Toolbox Version 3.1 (R2007a)
Extended Symbolic Math Toolbox Version 3.2 (R2007a)
Filter Design Toolbox Version 4.1 (R2007a)
Financial Derivatives Toolbox Version 5.0 (R2007a)
Financial Toolbox Version 3.2 (R2007a)
Fixed-Income Toolbox Version 1.3 (R2007a)
Fixed-Point Toolbox Version 2.0 (R2007a)
Fuzzy Logic Toolbox Version 2.2.5 (R2007a)
GARCH Toolbox Version 2.3.1 (R2007a)
Genetic Algorithm and Direct Search Toolbox Version 2.1 (R2007a)
Image Processing Toolbox Version 5.4 (R2007a)
Instrument Control Toolbox Version 2.4.2 (R2007a)
LSM File Toolbox Version 1.1.0
MATLAB Distributed Computing Engine Version 3.1 (R2007a)
MATLAB Report Generator Version 3.2 (R2007a)
Mapping Toolbox Version 2.5 (R2007a)
Model Predictive Control Toolbox Version 2.2.4 (R2007a)
Neural Network Toolbox Version 5.0.2 (R2007a)
Optimization Toolbox Version 3.1.1 (R2007a)
Partial Differential Equation Toolbox Version 1.0.10 (R2007a)
RF Blockset Version 2.0 (R2007a)
RF Toolbox Version 2.1 (R2007a)
Robust Control Toolbox Version 3.2 (R2007a)
Signal Processing Blockset Version 6.5 (R2007a)
Signal Processing Toolbox Version 6.7 (R2007a)
SimBiology Version 2.1.1 (R2007a)
SimDriveline Version 1.3 (R2007a)
SimEvents Version 2.0 (R2007a)
SimHydraulics Version 1.2 (R2007a)
SimMechanics Version 2.6 (R2007a)
SimPowerSystems Version 4.4 (R2007a)
Simscape Version 1.0 (R2007a)
Simulink Control Design Version 2.1 (R2007a)
Simulink Fixed Point Version 5.4 (R2007a)
Simulink Parameter Estimation Version 1.2 (R2007a)
Simulink Report Generator Version 3.2 (R2007a)
Simulink Response Optimization Version 3.1.1 (R2007a)
Simulink Verification and Validation Version 2.1 (R2007a)
Spline Toolbox Version 3.3.2 (R2007a)
Stateflow Version 6.6 (R2007a)
Statistics Toolbox Version 6.0 (R2007a)
Symbolic Math Toolbox Version 3.2 (R2007a)
System Identification Toolbox Version 7.0 (R2007a)
SystemTest Version 1.1 (R2007a)
Video and Image Processing Blockset Version 2.3 (R2007a)
Virtual Reality Toolbox Version 4.5 (R2007a)
Wavelet Toolbox Version 4.0 (R2007a)

Trademarks
------------------
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, and xPC
TargetBox are registered trademarks and SimBiology, SimEvents, and
SimHydraulics are trademarks of The MathWorks, Inc. Other product or
brand names are trademarks or registered trademarks of their respective
holders.
Comments