Computational Intelligence, SS08
2 VO 442.070 + 1 RU 708.070 last updated:
Course Notes (Skriptum)
Online Tutorials
Introduction to Matlab
Neural Network Toolbox
OCR with ANNs
Adaptive Filters
VC dimension
Gaussian Statistics
PCA, ICA, Blind Source Separation
Hidden Markov Models
Mixtures of Gaussians
Automatic Speech Recognition
Practical Course Slides
Animated Algorithms
Interactive Tests
Key Definitions
Literature and Links


Manipulating Matrices

Matlab works with essentially one kind of object: a matrix of numbers (which could include complex elements). Scalars are 1-by-1 matrices, while vectores are 1-by-n or n-by-1 matrices.

When entering a matrix, seperate columns by spaces or commas and rows by semicolons, e.g.:

>> P = [3 5 -6 1; -2 5 4 9]

P =
    3     5    -6     1
   -2     5     4     9
Matlab stores the above 2-by-4 matrix in its workspace for later use. To retrieve a variable, simply type its name (e.g., P). Matlab is case-sensitive, so p and P are not the same.

When you do not specify an output variable, Matlab uses the variable ans, short for answer, to store the results of a calculation.

Including a semicolon (;) at the end of a command suppresses Matlab's echoing to the teminal (this is useful when dealing with large sets of numbers.)

To take the sum along the columns of P type
>> sum(P)

ans =
     1    10    -2    10
Matlab has a preference for working with the columns of a matrix, so the easiest way to get the row sums is to transpose the matrix with the transpose operator .', compute the column sums of the transpose, and then transpose the result:
>> sum(P.').';
In contrast single quote operator ' conjugates and transposes matrices (Hermitian operator).


The element in row i and column j of P is denoted by P(i,j). If you try to use the value of an element outside of the matrix, it is an error.

>> t = P(4,5)
Index exceeds matrix dimensions.
On the other hand, if you store a value in an element outside of the matrix, the size increases to accommodate the newcomer.
>> X = P; X(1,5) = 17
X =
     3     5    -6     1    17
    -2     5     4     9     0
It is also possible to refer to the elements of a matrix with a single subscript, P(5). In this case the array is regarded as one long column vector formed from the columns of the original matrix.
>> P(5)

ans =


Matlab provides mathematical expressions that involve entire matrices. The building blocks of expressions are variables, numbers, operators and functions.

Matlab does not require any type declarations or dimension statements for variables. Variable names consist of a letter, followed by any number of letters, digits, or underscores. Matlab uses only the first 31 characters of a variable name.

Expressions use familiar arithmetic operators and precedence rules: + addition, - subtraction, * multiplication, / division, $\backslash$ left division (described in Matrices and Linear Algebra in the MATLAB documentation), ^ power, ' complex conjugate transpose and ( ) specify evaluation order. The mathematical operations defined on matrices are the subject of linear algebra. The multiplication symbol, *, denotes the matrix multiplication involving inner products between rows and columns:
>> w = [0.5 1]; h = w*P

h =
   -0.5000    7.5000    1.0000    9.5000
Matlab uses conventional decimal notation, with an optional decimal point and leading plus or minus sign, for numbers. Scientific notation uses the letter e to specify a power-of-ten scale factor. Imaginary numbers use either i or j as a suffix. All numbers are stored internally using the long format specified by the IEEE floating-point standard.

Matlab provides a large number of standard elementary mathematical functions as well as more advanced mathematical functions, including Bessel and gamma functions. Some of the functions, like sqrt and sin or

 pi   3.14159265... 

i Imaginary unit, $\sqrt{-1}$

j Same as i

Inf Infinity

NaN Not-a-number
are built in. Other functions, like gamma, sinh or hardlim, are implemented in M-files. You can see the code, e.g. by typing
>> type hardlim
and even modify it if you want.