Top Banner
INTRODUCTION TO MATLAB Week 1 Tutorial
34

I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

Dec 26, 2015

Download

Documents

Oliver Harvey
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

INTRODUCTION TO MATLABWeek 1 Tutorial

Page 2: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

INTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical

computing, developed by Mathworks, Inc.

It provides a single platform for computation, visualisation, programming and software development.

Matlab is a perfect choice for use with medical data.

Matlab is very powerful and essentially involves operations using matrices and vectors (arrays). Over the duration of this module you will be learning, through practical

exercises, how Matlab can be used to visualize and manipulate medical data.

You will also (Wk 9, 10) learn how to perform classification and data clustering using matlab.

The Matlab software environment has a core module (called Matlab) and associated with that are a set of ‘Toolboxes’ that perform specialized computations.

Page 3: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

TUTORIAL OVERVIEW

In this tutorial, we will introduce some of the basic components of Matlab in preparation for the first Matlab tutorial in week 3.

The aim is to provide everyone with a basic understanding. Therefore we will work through the concepts

slowly. Feel free to ask questions throughout.

Page 4: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

LETS BEGIN Getting Started.

Matlab should be available in 16C29, where your practical labs will be held – look for the Matlab icon on the desktop.

Note: In all of the discussion in the following sections, stuff that you type into Matlab will be presented in boldface.

Double click on the Matlab icon to start the program.

To get started, type one of these commands: helpwin, helpdesk, or demo.

The ">>" is a prompt, requiring you to type in commands. One of the first commands you should type in is to find out what your working directory is. The working directory is where you will save the results of your calculations. So, type in >> pwd (stands for "print working directory".

Matlab always stores the result of its last calculation in a variable called ans (short for answer).

You can change the working directory using the cd (short for change directory) command. Do >> cd C:\temp

Page 5: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

VECTORS AND MATRICES (1) Variables in Matlab are just like variables in any other

programming language. only difference is that you do not have to define them by

indicating the type etc. Also, variable names (case sensitive) can be used to refer

to a single number, a set of numbers (vector) or an array of numbers (matrix).

Vectors are nothing but matrices having a single row (a row vector), or a single column (a column vector).

To create a row vector in Matlab, do: >> r = [1 2 3 4]

r = 1     2     3     4

A column vector can be created by >> c = [1; 2; 3; 4] c =     1    2    3    4  

Page 6: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

VECTORS AND MATRICES (2) On the other hand, you can use the ' operator

(transpose) to flip the row vector created. >> c = r' c =     1  2   3   4

Vectors can also be created by incrementing a starting value with a constant quantity. For example,

>> r = [0:2:10] r =     0     2     4     6     8    10 creates a row vector, with the first

element = 0; each element incremented by 2; until the final value of 10.

You can index specific parts of a vector. For example, to get the third element in the vector r, you can do

>> r(3) ans = 4

Page 7: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

VECTORS AND MATRICES (3) Matrices are 2 dimensional quantities and are

created similar to vectors. We can do >> a = [1 2 3; 4 5 6; 7 8 9; 10 11 12]

a =     1     2     3      4     5     6      7     8     9     10    11    12

which is a 4x3 matrix (4 rows and 3 columns).

Page 8: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

VECTORS AND MATRICES (4) We can also use the incrementation principle to do

>> b = [0:2:10; 1:2:11]

b =     0     2     4     6     8    10      1     3     5     7     9    11

which is a 2x6 matrix. Again, individual elements of the matrix, for instance the element in the 2nd row, 5th column can be accessed using the notation:

>> b(2, 5) ans = 9

Page 9: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

VECTOR AND MATRIX OPERATIONS (1) The basic arithmetic operations +, -, *, / can be used for vectors and matrices.

These generate corresponding output vectors or matrices.

For example, to add two vectors: >> a = [1 2 3 4]; >> b = [5 6 7 8]; >> c = a+b

c =  6 8 19 12 The semicolons (;) in the first two commands direct Matlab not to echo the values of

the variables a and b on to the screen immediately after you type them.

Obviously, only vectors that have the same number of elements can be added or subtracted. Similarly, two matrices with identical number of rows and columns can be subtracted as follows: >> m = [1:2:9; 10:2:19]; >> b = [2:2:10; 11:2:20] >> c = m-b

c =  -1    -1    -1    -1    -1       -1    -1    -1    -1    -1   

Page 10: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

VECTOR AND MATRIX OPERATIONS (2)

Matrix multiplication using the * symbol is possible only if the number of columns in the first matrix equals the number of rows in the second:

>> a=[1 2 3; 4 5 6] a =     1     2     3      4     5     6

>> b = a’ b =   1     4      2     5      3     6

>> c=a*b c =   14    32     32    77

COLUMN

RO

W

Page 11: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

DELETING ROW / COLUMN ITEMS To delete a row or column of a matrix, use the empty vector

operator, [ ].

>> A(3,:) = [ ] >>A = 1 2 3

4 5 6

Third row of matrix A is now deleted.

To restore the third row, we use a technique for creating a matrix

>> A = [A(1,:) ; A(2,:); [7 8 0]] >>A = 1 2 3

4 5 67 8 9

Matrix A is now restored to its original form.

Page 12: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

LOOPS The for loop is a simple command for setting up a

loop. >> a = []; >> for i = 1:10; >> a(i) = i*i; >> end >> a a =     1     4     9    16    25    36    49    64    81   100

All statements between the for and the end statements will be executed as per the command specifications. Example of a for loop where the increment is not 1 would be

>> for i = 1:3:20; ..... etc. Type in >> help for for more details.

Page 13: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

INTRODUCTION TO MATLABWeek 2 Tutorial

Page 14: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

WHY CHOOSE MATLAB? (1)

Matlab is currently widely used as a platform for developing tools for Decision Support

Why it is useful for prototyping AI projects: large toolbox of numeric/image library functions very useful for displaying, visualizing data high-level: focus on algorithm structure, not on

low level details allows quick prototype development of

algorithms

Page 15: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

WHY CHOOSE MATLAB? (1) Matlab is an interpreter -> not as fast as compiled code

Typically quite fast for an interpreted language

Often used early in development -> can then convert to C (e.g.,) for speed

Can be linked to C/C++, JAVA, SQL, etc

Commercial product, but widely used in industry and academia

Many algorithms and toolboxes freely available netlab

Page 16: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

SAVING YOUR WORKSPACE

It is possible to save your workspace.

This is the area in which all of you created variables are. Be aware, this can become very large!

>> save {name is optional}

Typing ‘save’ on its own will create a file called ‘matlab.mat’ in the working directory.

Typing ‘load {name is optional} will load the workspace.

Page 17: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

FILE INPUT / OUTPUT The save and load commands are used for saving data to disk

or loading data from disk, respectively.

To save values in a  matrix or vector, called, for instance, y, do: >> y = [1 2 3 4; 5 6 7 8]; >> save sample.txt y -ascii

The -ascii option ensures that the data is saved in ASCII form, so that it can be read by other programs - Word, Excel Notepad, Wordpad, etc.

Examine the file y.txt using one of these programs. The file is generated in the working directory.

An ASCII data file sample.txt can be loaded using >> load sample.txt

Do >>help save and >>help load for more on load/save options.

Page 18: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

PLOTTING

The plot command is used for generating 2-D (functions of one variable) plots.

Do >> help plot for complete details.

>> x = [0:0.1:10]; %(here .1 is the increment) >> y = sin(x); %(notice how the sin function operates on each

element of the entire row vector x, to generate a nother row vector y)

>> plot (x, y)

>> clf (clear graph)

To generate another plot window, do >> figure

Page 19: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

2-D PLOTTING x=0:.1:2*pi; y=sin(x); plot(x,y) grid on %grid on hold on %add extra to graph plot(x, exp(-x), 'r:*') axis([0 2*pi 0 1]) title('2-D Plot') %title xlabel('Time') %labels ylabel('Sin(t) ') text(pi/3, sin(pi/3), '<--sin(\pi/3) ') % add some text Legend('Sine Wave', 'Decaying Exponential') %

legend

Page 20: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

LINE CHARACTERISTICS

Page 21: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

PLOTTING

x = rand(1,100); y = rand(1,100); plot(x,y,'*')

% To put a label on the axes we would use: xlabel ('X-axis label') ylabel ('Y-axis label') % To put a title on the plot, we would use: title ('Title of my plot')

Page 22: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

FIGURE WINDOW The figure window contains useful actions in its menu and toolbars:

Zooming in and out Rotating 3-D axes (and other camera actions) Copying & pasting Plot Edit Mode Property Editor Saving & Exporting

Figures can be saved in a binary .fig file format

Figure can be exported to many standard graphics file formats etc., GIF, PNG, JPEG, TIFF, BMP, PCX, EPS.

Printing

Page 23: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

EXECUTABLE FILES (M-FILES IN MATLAB) Executable files in Matlab are generated by storing a list of Matlab

commands in a file given the extension .m These files are called M-files. To create an M-file, use the New...M-file Option under the File Menu in the

Command Window.

Type in the following commands in the M-File Editor Window:

x = [2:3:38];y = [1 3 11 45 67 105 102 65 56 32 11 3 1]; plot(x,y)xlabel('x') ylabel('y')

Save the file using the Save Option under the File Menu in the M-File Editor Window. Call it, say, sample.m.

Now, to run this program in Matlab, move over to the Matlab Command Window and just type in >> sample

Page 24: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

PLOTTING MEDICAL DATA (1) EMG Data – electrical signals representing muscle movement

on the forearm resulting from gross finger movement.

>> plot(finger1)>> axis([0,500,60,200])

>> figure>> plot(finger2)>> axis([0,500,60,200])

>> figure>> plot(finger3)>> axis([0,500,60,200])

>> figure>> plot(finger4)>> axis([0,500,60,200])

Page 25: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

PLOTTING MEDICAL DATA (2)

>> figure >> hold on >> plot(Average1,'r','LineWidth',1.5) >> plot(Average2,'g','LineWidth',1.5) >> plot(Average3,'b','LineWidth',1.5) >> plot(Average4,'k','LineWidth',1.5) >> hold off

Page 26: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

SUBPLOTS Subplot (m x n, position)

subplot(2,2,1) plot (Average1) subplot(2,2,2) plot (Average2) subplot(2,2,3) plot (Average3) subplot(2,2,4) plot (Average4)

subplot(2,2,1)plot(Average1,'r','LineWidth',1.5)subplot(2,2,2)plot(Average2,'g','LineWidth',1.5)subplot(2,2,3)plot(Average3,'b','LineWidth',1.5)subplot(2,2,4)plot(Average4,'k','LineWidth',1.5)

Page 27: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

PLOTTING MEDICAL DATA (3) ECG – The contraction of the heart muscle is caused by an

electrical charge, originating from within the heart itself.

This charges travels to the body surface

Electrodes can be placed on the body and used to read the electrical activity.

Plot (x1)

Page 28: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,
Page 29: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

CONTOUR PLOTS

%contour plot contour(example)

%coloured contour plot contourf(example)

%more contours contourf(example,100)

%Coloured contour plot with edge line removed contourf(example,'EdgeColor','none')

Page 30: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

SURFACE PLOTS

%simple surface plot surf(example)

%surface plot with colourbar surf(example,'EdgeColor','none') colorbar

%interpolated surface plot with contour plot surfc(example,'EdgeColor','none') shading interp

Page 31: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

ADVANTAGED GRAPHING

example = mapper(x,y,tempArray1(1,5:121))

Page 32: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

MORE SUBPLOTS

subplot(1,2,1) surfc(example,'EdgeColor','none') set(gca,'YDir','reverse'); shading interp axis square

subplot(1,2,2) contourf(example,'EdgeColor','none') set(gca,'YDir','reverse'); axis square

Page 33: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

PLOTTING A SEQUENCE

%Plot multiple bspms in sequence

for i = 1:10hold onmapper(x,y,tempArray1(i,5:121))pauseendhold off

Page 34: I NTRODUCTION TO M ATLAB Week 1 Tutorial. I NTRODUCTION Matlab (short for MATrix LABoratory) is a language for technical computing, developed by Mathworks,

SUMMARY Matlab is the perfect choice for working with large

amounts of medical data.

When faced with the task of having to classify medical data into a number of different categories. Healthly and Unhealthy

The first step is usually to graph the data.

Graphing allows us to quickly assess vast amounts of data.

Later in the module you will be given simple classification tasks. Consider graphing the ‘problem’ first to gain insight into the

structure of the data and relationship between variables.