0% found this document useful (0 votes)
54 views

Introduction To MATLAB: Simon O'Keefe Non-Standard Computation Group Sok@cs - York.ac - Uk

This document provides an introduction to MATLAB. It describes MATLAB as a language and environment for numerical computation, data analysis, and visualization. It outlines some of MATLAB's key features, including built-in functionality for matrix manipulation, data analysis, and graphics/visualization. It also describes how to start and stop MATLAB and introduces some of the basic MATLAB interfaces like the command window and workspace. Finally, it covers basic MATLAB concepts like variables, vectors, matrices, accessing and changing matrix elements, and clearing variables.

Uploaded by

Abhidude
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views

Introduction To MATLAB: Simon O'Keefe Non-Standard Computation Group Sok@cs - York.ac - Uk

This document provides an introduction to MATLAB. It describes MATLAB as a language and environment for numerical computation, data analysis, and visualization. It outlines some of MATLAB's key features, including built-in functionality for matrix manipulation, data analysis, and graphics/visualization. It also describes how to start and stop MATLAB and introduces some of the basic MATLAB interfaces like the command window and workspace. Finally, it covers basic MATLAB concepts like variables, vectors, matrices, accessing and changing matrix elements, and clearing variables.

Uploaded by

Abhidude
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 81

Introduction to MATLAB

Simon O’Keefe
Non-Standard Computation Group
[email protected]
Content

n  An introduction to MATLAB


n  The MATLAB interfaces

n  Variables, vectors and matrices

n  Using operators

n  Using Functions

n  Creating Plots

2  
1 Introduction to MATLAB

n  What is MATLAB?


q  MATLAB provides a language and environment
for numerical computation, data analysis,
visualisation and algorithm development
q  MATLAB provides functions that operate on
n  Integer, real and complex numbers
n  Vectors and matrices
n  Structures

3  
What are we interested in?
n  Matlab is too broad for our purposes in this
course.
n  The features we are going to require is
Matlab
Series of
Matlab
commands
Command
m-files mat-files
Line

functions Command execution


Data
Input like DOS command
storage/
Output window
loading
capability
1 MATLAB Functionality

q  Built-in Functionality includes


n  Matrix manipulation and linear algebra
n  Data analysis
n  Graphics and visualisation
n  …and hundreds of other functions J
q  Add-on toolboxes provide*
n  Image processing
n  Signal Processing

n  Optimization

n  Genetic Algorithms

…* but we have to pay for these extras L


1 MATLAB paradigm
n  MATLAB is an interactive environment
q  Commands are interpreted one line at a time

q  Commands may be scripted to create your own functions or


procedures
n  Variables are created when they are used
n  Variables are typed, but variable names may be reused for
different types
n  Basic data structure is the matrix
q  Matrix dimensions are set dynamically

n  Operations on matrices are applied to all elements of a matrix at


once
q  Removes the need for looping over elements one by one!

q  Makes for fast & efficient programmes


1 Starting and stopping

n  To Start
q  On Windows XP platform select
q  Start->Programs->Maths and Stats->
MATLAB->MATLAB_local->R2007a->MATLAB R2007a
q  For access to the Genetic Algorithms and Stats
toolboxes, you must use R2007b on Windows
n  MATLAB runs on Linux quite happily but we do not have
toolbox licences
n  To stop (nicely)
q  Select File -> Exit MATLAB
q  Or type quit in the MATLAB command window
1 The MATLAB interfaces

Workspace

Command Window

Command History

8  
1 Window Components

q  Command Prompt – MATLAB commands are entered


here.
q  Workspace – Displays any variables created

(Matrices, Vectors, Singles, etc.)


q  Command History - Lists all commands previously

entered.

—  Double clicking on a variable


in the Workspace will open an
Array Editor. This will give you
an Excel-like view of your
data.
9  
1 The MATLAB Interface

n  Pressing the up arrow in the command window will


bring up the last command entered
q  This saves you time when things go wrong
n  If you want to bring up a command from some time
in the past type the first letter and press the up
arrow.
n  The current working directory should be set to a
directory of your own

10  
2 Variables, vectors and matrices

11  
2.1 Creating Variables

n  Variables
q  Names
n  Can be any string of upper and lower case letters along with
numbers and underscores but it must begin with a letter
n  Reserved names are IF, WHILE, ELSE, END, SUM, etc.
n  Names are case sensitive
q  Value
n  This is the data the is associated to the variable; the data is
accessed by using the name.
q  Variables have the type of the last thing assigned to
them
n  Re-assignment is done silently – there are no warnings if you
overwrite a variable with something of a different type.

12  
Variables
n  No need for types. i.e.,

int a;
double b;
float c;

n  All variables are created with double precision unless


specified and they are matrices.
Example:
>>x=5;
>>x1=2;

n  After these statements, the variables are 1x1 matrices


with double precision
2.1 Single Values
n  Singletons
q  To assign a value to a variable
use the equal symbol ‘=‘
>> A = 32

q  To find out the value of a variable


simply type the name in

14  
2.1 Single Values

n  To make another variable equal to


one already entered
>> B = A

n  The new variable is not updated


as you change the original value

Note: using ; suppresses output

15  
2.1 Single Values

n  The value of two variables can be added together,


and the result displayed…
>> A = 10
>> A + A

n  …or the result can be stored in another variable


>> A = 10
>> B = A + A

16  
2.1 Vectors
n  A vector is a list of numbers
q  Use square brackets [] to contain the numbers

n  To create a row vector use ‘,’ to separate the


content

17  
2.1 Vectors

q  To create a column vector use ‘;’ to separate the


content

18  
2.1 Vectors
n  A row vector can be converted into a column vector
by using the transpose operator ‘

19  
2.1 Matrices

n  A MATLAB matrix is a rectangular array of numbers


q  Scalars and vectors are regarded as special cases of
matrices
q  MATLAB allows you to work with a whole array at a time
2.1 Matrices
n  You can create matrices (arrays) of any size using a
combination of the methods for creating vectors
n  List the numbers using ‘,’ to separate each column
and then ‘;’ to define a new row

21  
2.1 Matrices
n  You can also use built in functions to create a matrix
>> A = zeros(2, 4)
creates a matrix called A with 2 rows and 4 columns
containing the value 0
>> A = zeros(5) or >> A = zeros(5, 5)
creates a matrix called A with 5 rows and 5 columns

n  You can also use:


>> ones(rows, columns)
>> rand(rows, columns)

Note: MATLAB always refers to the first value as the


number of Rows then the second as the number of
Columns

22  
2.1 Clearing Variables

n  You can use the command “clear all” to delete all
the variables present in the workspace

n  You can also clear specific variables using:


>> clear Variable_Name

23  
2.2 Accessing Matrix Elements

n  An Element is a single number within a matrix or vector

n  To access elements of a matrix type the matrices’ name


followed by round brackets containing a reference to the
row and column number:
>> Variable_Name(Row_Number, Column_Number)

NOTE: In Excel you reference a value by Column, Row. In


MATLAB you reference a value by Row, Column

24  
2.2 Accessing Matrix Elements

1st   2nd  
Excel   MATLAB  

2nd   1st  

n  To access Subject 3’s result for Test 3


q  In Excel (Column, Row):
D3
q  In MATLAB (Row, Column):
>> results(3, 4)

25  
2.2 Changing Matrix Elements

n  The referenced element can also be changed


>> results(3, 4) = 10
or
>> results(3,4) = results(3,4) * 100

26  
2.2 Accessing Matrix Rows

n  You can also access multiple values from a Matrix


using the : symbol
q  To access all columns of a row enter:
>> Variable_Name(RowNumber, :)

27  
2.2 Accessing Matrix Columns

n  To access all rows of a column


q  >> Variable_Name(:, ColumnNumber)

28  
2.2 Changing Matrix Rows or Columns
n  These reference methods can be used to change the
values of multiple matrix elements

n  To change all of the values in a row or column to


zero use
>> results(:, 3) = 0 >> results(:, 5) = results(:, 3) + results(:,
4)

29  
2.2 Changing Matrix Rows or Columns
n  To overwrite a row or column with new values
>> results(3, :) = [10, 1, 1, 1]
>> results(:, 3) = [1; 1; 1; 1; 1; 1; 1]

NOTE: Unless you are overwriting with a single value the data entered
must be of the same size as the matrix part to be overwritten.

30  
2.2 Accessing Multiple Rows, Columns
q  To access consecutive Rows or
Columns use : with start and
end points:

q  Multiple Rows:


>> Variable_Name(start:end, :)

q  Multiple Columns:


>> Variable_Name(:, start:end)

31  
2.2 Accessing Multiple Rows, Columns
n  To access multiple non consecutive
Rows or Columns use a vector of
indexes (using square brackets [])

q  Multiple Rows:


>>Variable_Name([index1, index2, etc.], :)

q  Multiple Columns:


>>Variable_Name(:, [index1, index2, etc.])

32  
2.2 Changing Multiple Rows, Columns

n  The same referencing can be used to change


multiple Rows or Columns

>> results([3,6], :) = 0 >> results(3:6, :) = 0

33  
2.3 Copying Data from Excel

n  MATLAB’s Array Editor allows you to copy data from


an Excel spreadsheet in a very simple way

q  In Excel select the data and click on copy

q  Double click on the variable you would like to store the data
in
n  This will open the array editor

q  In the Array Editor right click in the first element and select
“Paste Excel Data”

34  
2.3 Copying Data from Excel

35  
2.4 The colon operator
n  The colon : is actually an operator, that generates a row
vector
n  This row vector may be treated as a set of indices when
accessing a elements of a matrix
n  The more general form is
q  [start:stepsize:end]
>> [11:2:21]
11 13 15 17 19 21
>>
n  Stepsize does not have to be integer (or positive)
>> [22:-2.07:11]
22.00 19.93 17.86 15.79 13.72 11.65
>>
2.4 Concatenation

n  The square brackets [] are the concatenation


operator.
n  So far, we have concatenated single elements to
form a vector or matrix.
n  The operator is more general than that – for
example we can concatenate matrices (with the
same dimension) to form a larger matrix
2.4 Saving and Loading Data
n  Variables that are currently in the workspace can be
saved and loaded using the save and load commands

n  MATLAB will save the file in the Current Directory

n  To save the variables use


>> save File_Name [variable variable …]

n  To load the variables use


>> load File_Name [variable variable …]

38  
3 More Operators

39  
3.1 Mathematical Operators

n  Mathematical Operators:


n  Add: +
n  Subtract: -
n  Divide: ./
n  Multiply: .*
n  Power: .^ (e.g. .^2 means squared)

n  You can use round brackets to specify the order in


which operations will be performed
n  Note that preceding the symbol / or * or ^ by a ‘.’
means that the operator is applied between pairs of
corresponding elements of vectors of matrices

40  
3.1 Mathematical Operators
n  Simple mathematical operations are easy in MATLAB

n  The command structure is:


>> Result_Variable =
Variable_Name1 operator Variable_Name2

q  E.g. To add two numbers together:


Excel: MATLAB:
>> C = A + B
>> C = (A + 10) ./ 2

41  
3.1 Mathematical Operators

n  You can apply single values to an entire matrix


E.g.
>> data = rand(5,1)
>> A = 10
>> results = data + A

42  
3.1 Mathematical Operators

n  Or, if two matrices/vectors are the same size, you


can perform these operations between them
>> results = [1:5]’
>> results2 = rand(5,1)
>> results3 = results + results2

43  
3.1 Mathematical Operators
n  Combining this with methods from Accessing Matrix Elements
gives way to more useful operations
>> results = zeros(3, 5)
>> results(:, 1:4) = rand(3, 4)
>> results(:, 5) = results(:, 1) + results(:, 2) + results(:, 3) + results(:,
4)
or
>> results(:, 5) = results(:, 1) .* results(:, 2) .* results(:, 3) .* results(:,
4)

NOTE: There is a simpler way to do this using the Sum and Prod
functions, this will be shown later.

44  
3.1 Mathematical Operators
>> results = zeros(3, 5)
>> results(:, 1:4) = rand(3, 4)
>> results(:, 5) = results(:, 1) + results(:, 2) + results(:, 3) + results(:,
4)

45  
3.1 Mathematical Operators

n  You can perform operations on a matrix - you are


very likely to use these
q  Matrix Operators:
n  Matrix Multiply: *
n  Matrix Right Division: /

n  Example:

46  
3.1 Operation on matrices

n  Multiplication of matrices with * calculates inner


products between rows and columns
n  To transpose a matrix, use ‘
n  det(A) calculates the determinant of a matrix A
n  inv(A) calculates the inverse of a matrix A
n  pinv(A) calculates the pseudo-inverse of A
n  …and so on
3.2 Logical Operators

q You can use Logical Indexing to find data that


conforms to some limitations

q Logical Operators:
n  Greater Than: >
n  Less Than: <
n  Greater Than or Equal To: >=
n  Less Than or Equal To: <=
n  Is Equal: ==
n  Not Equal To: ~=

48  
3.2 Logical Indexing

n  For example, you can find data that is above a


certain limit:
>> r = results(:,1)
>> ind = r > 0.2
>> r(ind)

n  ind is the same size as r and contains zeros (false) where the
data does not fit the criteria and ones (true) where it does, this
is called a Logical Vector.

n  r(ind) then extracts the data where ones exist in ind

49  
3.2 Logical Indexing

>> r = results(:,1)
>> ind = r > 0.2
>> r(ind)

50  
3.3 Boolean Operators
q Boolean Operators:
n  AND: &
n  OR: |
n  NOT: ~

n  Connects two logical expressions together

51  
3.3 Boolean Operators

n  Using a combination of Logical and Boolean


operators we can select values that fall within a
lower and upper limit
>> r = results(:,1)
>> ind = r > 0.2 & r <= 0.9
>> r(ind)

n  More later...

52  
4 Functions

53  
4 Functions

n  A function performs an operation on the input


variable you pass to it

n  Passing variables is easy, you just list them within


round brackets when you call the function
q  function_Name(input)

n  You can also pass the function parts of a matrix


>> function_Name(matrix(:, 1))
or
>> function_Name(matrix(:, 2:4))

54  
4 Functions

n  The result of the function can be stored in a variable


>> output_Variable = function_Name(input)
e.g.
>> mresult = mean(results)

n  You can also tell the function to store the result in parts of
a matrix
>> matrix(:, 5) = function_Name(matrix(:, 1:4))

55  
4 Functions

n  To get help with using a function enter


>> help function_Name

n  This will display information on how to use the


function and what it does

56  
4 Functions
n  MATLAB has many built in functions which make it easy to perform a
variety of statistical operations
q  sum – Sums the content of the variable passed

q  prod – Multiplies the content of the variable passed


q  mean – Calculates the mean of the variable passed

q  median – Calculates the median of the variable passed

q  mode – Calculates the Mode of the variable passed

q  std – Calculates the standard deviation of the variable passed

q  sqrt – Calculates the square root of the variable passed

q  max – Finds the maximum of the data

q  min – Finds the minimum of the data

q  size – Gives the size of the variable passed

57  
4 Special functions

n  There are a number of special functions that provide


useful constants
q  pi = 3.14159265….
q  i or j = square root of -1
q  Inf = infinity
q  NaN = not a number
4 Functions

n  Passing a vector to a function like sum, mean, std


will calculate the property within the vector
>> sum([1,2,3,4,5])
= 15

>> mean([1,2,3,4,5])
=3

59  
4 Functions

n  When passing matrices the property, by default, will


be calculated over the columns

60  
4 Functions

n  To change the direction of the calculation to the


other dimension (columns) use:
>> function_Name(input, 2)

n  When using std, max and min you need to write:
>> function_Name(input, [], 2)

61  
4 Functions
n  From Earlier
>> results(:, 5) = results(:, 1) + results(:, 2) + results(:, 3) + results(:,
4)
or
>> results(:, 5) = results(:, 1) .* results(:, 2) .* results(:, 3) .* results(:,
4)

n  Can now be written


>> results(:, 5) = sum(results(:, 1:4), 2)
or
>> results(:, 5) = prod(results(:, 1:4), 2)

62  
4 Functions
n  More usefully you
can now take the
mean and standard
deviation of the
data, and add them
to the array

63  
4 Functions

n  You can find the maximum and minimum of some


data using the max and min functions
>> max(results)
>> min(results)

64  
4 Functions
n  We can use functions and logical indexing to extract all the
results for a subject that fall between 2 standard deviations of
the mean
>> r = results(:,1)
>> ind = (r > mean(r) – 2*std(r)) & (r < mean(r) + 2*std(r))
>> r(ind)

65  
Use of M-File
Click  to  create  
a  new  M-­‐File  

•   Extension  “.m”    
•   A  text  file  containing  script  or  function  or  program  to  run  

 
Use of M-File Save  file  as  Denem430.m  

If  you  include  “;”  at  the    


end  of  each  statement,  
result  will  not  be  shown    
immediately  
 
Writing User Defined Functions

n  Functions are m-files which can be executed by


specifying some inputs and supply some desired outputs.
n  The code telling the Matlab that an m-file is actually a
function is
function out1=functionname(in1)
function out1=functionname(in1,in2,in3)
function [out1,out2]=functionname(in1,in2)

n  You should write this command at the beginning of the m-


file and you should save the m-file with a file name same
as the function name
Writing User Defined Functions
n  Examples
q  Write a function : out=squarer (A, ind)

n  Which takes the square of the input matrix if the input
indicator is equal to 1
n  And takes the element by element square of the input
matrix if the input indicator is equal to 2

Same Name
Writing User Defined Functions
n  Another function which takes an input array and returns the sum and product
of its elements as outputs

n  The function sumprod(.) can be called from command window or an m-file as
5 Plotting

71  
5 Plotting

n  The plot function can be used in different ways:


>> plot(data)
>> plot(x, y)
>> plot(data, ‘r.-’)

n  In the last example the line style is defined


Colour: r, b, g, c, k, y etc.
Point style: . + * x o > etc.
Line style: - -- : .-
q  Type ‘help plot’ for a full list of the options

72  
5 Plotting

n  A basic plot


1
>> x = [0:0.1:2*pi] 0.8

>> y = sin(x) 0.6

>> plot(x, y, ‘r.-’) 0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6 7

73  
5 Plotting

n  Plotting a matrix


q  MATLAB will treat each column as a different set of data
0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1
1 2 3 4 5 6 7 8 9 10

74  
5 Plotting

n  Some other functions that are helpful to create plots:

q  hold on and hold off


q  title

q  legend

q  axis

q  xlabel

q  ylabel

75  
5 Plotting
>> x = [0:0.1:2*pi]; Sin Plots
>> y = sin(x); 2
sin(x)
>> plot(x, y, 'b*-') 1.5 2*sin(x)

>> hold on 1

>> plot(x, y*2, ‘r.-') 0.5

>> title('Sin Plots'); 0


y

>> legend('sin(x)', '2*sin(x)'); -0.5

>> axis([0 6.2 -2 2])


-1

>> xlabel(‘x’);
-1.5

>> ylabel(‘y’);
-2
0 1 2 3 4 5 6
>> hold off x

76  
5 Plotting
n  Plotting data
0.9

0.8

0.7

0.6

0.5

0.4

>> results = rand(10, 3) 0.3


>> plot(results, 'b*')
>> hold on 0.2

>> plot(mean(results, 2), ‘r.-’) 0.1


1 2 3 4 5 6 7 8 9 10

77  
5 Plotting

q Error bar plot


>> errorbar(mean(data, 2), std(data, [], 2))
Mean test results with error bars
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1
0 2 4 6 8 10 12

78  
5 Plotting

n  You can close all the current plots using ‘close all’

79  
Notes:
n  “%” is the neglect sign for Matlab
(equaivalent of “//” in C). Anything after it on
the same line is neglected by Matlab
compiler.
n  Sometimes slowing down the execution is
done deliberately for observation purposes.
You can use the command “pause” for this
purpose
pause %wait until any key
pause(3) %wait 3 seconds
Useful Commands

n  The two commands used most by Matlab


users are
>>help functionname

>>lookfor keyword

You might also like