solving biological problems with matlab lecturer: chen keasar, e-mail: chen@cs.bgu.ac.il

Post on 22-Feb-2016

32 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Solving biological problems with MATLAB Lecturer: Chen Keasar, e-mail: chen@cs.bgu.ac.il 08-6477875 Office hours: 37/102 Sunday, 14:00-16:00 Tutors: Mor Ben- Tov (Life Sciences) E-mail: morbentov@gmail.com Office hours: 40/310 Wednesday 15:00-16:00 - PowerPoint PPT Presentation

TRANSCRIPT

Solving biological problems with MATLAB

Lecturer: Chen Keasar, e-mail: chen@cs.bgu.ac.il08-6477875Office hours: 37/102 Sunday, 14:00-16:00

Tutors: Mor Ben-Tov (Life Sciences) E-mail: morbentov@gmail.com Office hours: 40/310 Wednesday 15:00-16:00 Yonatan Natan (Sde-Boker) E-mail: flyingjony@gmail.com Office hours: Sunday 15:00-16:00

• Web page URL:http://lhttp://moodle.bgu.ac.il/moodle/

What will you learn in the course?

• Algorithms

• Building blocks for writing a MATLAB program

• Using MATLAB for mathematical applications

• Handling graphics in MATLAB

The rules of this course

• No formal pre-requisite

• Math course ( מערכות של or equivalent) is מתמטיקהassumed

• lecture notes on web - print and bring

• Tutorials – central role in the course

• Start in class, complete at home, submit every week (through the web site)

• Each student submits own independent work

• The use of the Forum of course is allowed, but no code

• Missing tutorials (e.g., Miluim), can be exempt but it’s your interest to submit even if later3

The rules of the game (cont.)

• Students from Sede Boqer campus will have tutorial there

• The tutors will instruct you exactly how tom submit tutorial – MUST follow instructions

• Tutorials not submitted accordingly – will not be accepted !

• Final project – selected from a list - or request your own project (no tater than week 5 of the semenster).

• After project submission – an oral exam in front of computer on the project

• Final grade – 35% tutorials, 65% final exam

What do I do with MATLAB?

CLUSTERING

Generation of energy function

What is MATLAB• MATLAB is a language• MATLAB is an interpreter• MATLAB is an integrated

environment• MATLAB is a product of MathWorks

What is MATLAB• MATLAB is a language

popSize=23

is a statement in this language.

It means:

1. Allocate some space in the computer memory.

2. Tag this space “popSize”.

3. Store the number 23 in that space.

• MATLAB is an interpreter• MATLAB is an integrated

environment

What is MATLAB• MATLAB is a language

popSize=23

• MATLAB is an interpreterA program that:

1. reads MATLAB statements

2. Translates them to machine language

3. Executes them.

• MATLAB is an integrated environment

What is MATLAB• MATLAB is a language

popSize=23

• MATLAB is an interpreter (command window)

>>

popSize =

23

• MATLAB is an integrated environment

popSize=23

What is MATLAB• MATLAB is a language

popSize=23

• MATLAB is an interpreter (command window)

• MATLAB is an integrated environment

What is MATLAB• MATLAB is an integrated environment

Programming with MATLAB

Basic components in computer program

takes input -> operates on it -> gets output

Various Input/Output methods – later

simplest input:

Allocating a value to a variable, e.g.,:

a=2

popSize=23

Variable Names• Variables start with a letter

• Can continue with more letters, digits etc.

• Not longer than 31 characters

• Make names easy to remember

• make sure no typos

• MATLAB is case sensitive

• popSize is different from PopSize or popSize1

Non-recommended variable names a

b1

gc

initialpopulationsize

Functions extend the languageSpecific Syntax:

function output=functionName(input)…. the function itself …end

Words of MATLAB language

function output=functionName(input)…. the function itself …end

Any word you want. Becomes a new word in the language

function output=functionName(input)…. the function itself …end

Any word you want. Known only within the function

function output=functionName(input)…. the function itself …end

MATLAB code (may include function calls)

Our first functionMotivation: populations parthenogenetic aphids

Our first functionfunction popSize2 = popDynam(popSize1)

birthRate = 0.2

deathRate = 0.1

birth = popSize1 * birthRate

death = popSize1 * deathRate

change = birth - death

popSize2 = popSize1 + change

end

We will save it in a file popDynam.m

What had happened?The MATLAB interpreter replaced popSize1 by 23 and executed the lines one by one.

function popSize2 = popDynam(popSize1)

birthRate = 0.2

deathRate = 0.1

birth = popSize1 * birthRate

death = popSize1 * deathRate

change = birth - death

popSize2 = popSize1 + change

end

23

2323

23

This is a bit too verbose

Our first function (fixed)

function popSize2 = popDynam(popSize1)

birthRate = 0.2;

deathRate = 0.1;

birth = popSize1 * birthRate;

death = popSize1 * deathRate;

change = birth – death;

popSize2 = popSize1 + change;

end Is this the shortest way I could write the function?

The function’s value may be assigned to a variable

(actually it is always assigned)

Variables defined in the command window are kept in memory.

You can see them all in the “Workspace” window

The function’s variable are recognized only within the function

Some other aphids may have different birth and death rates.

function popSize2=popDynam(popSize1, birthRate, deathRate)

birth = popSize1 * birthRate;

death = popSize1 * deathRate;

change = birth - death;

popSize2 = popSize1 + change;

end

We may want to know the number of births and deaths

function pop = popDynam(popSize1, birthRate, deathRate)

birth = popSize1 * birthRate;

death = popSize1 * deathRate;

change = birth - death;

popSize2 = popSize1 + change;

pop = [popSize2 birth death];end

Row vector

A row vector may be transposed to a column vector

From vectors to matrices>> popParam= [24 0.2 0.1; 38 0.25 0.05]popParam = 24.0000 0.2000 0.1000 38.0000 0.2500 0.0500

Indexing an array/matrixpopParam(1,1) popParam(1,2) popParam(1,3)popParam(2,1) popParam(2,2) popParam(2,3)

popParam = 24.0000 0.2000 0.1000 38.0000 0.2500 0.0500

>> popParam(1,1)ans = 24

>> popParam(2,2)ans = 0.2500

popParam = 24.0000 0.2000 0.1000 38.0000 0.2500 0.0500

>> popParam(1,2:3)ans = 0.2000 0.1000

Note the colon! Here, it represents “to”Note, this is a vector>> ans(1)ans = 0.2000

popParam = 24.0000 0.2000 0.1000 38.0000 0.2500 0.0500

>> popParam(1,:)ans = 24.0000 0.2000 0.1000

Note the colon! Here, it represents “all”

top related