Software‎ > ‎Tracking Neutrophils‎ > ‎

# 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: XXXXXOperating 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 xPCTargetBox are registered trademarks and SimBiology, SimEvents, andSimHydraulics are trademarks of The MathWorks, Inc. Other product orbrand names are trademarks or registered trademarks of their respectiveholders. `