Download presentation

Presentation is loading. Please wait.

Published byLinda Sparkman Modified over 2 years ago

1
A bit more about variables >> var1 = [ 1 2 3] var1 = 1 2 3 >> var2 = var1 var2 = 1 2 3 >> var1 = [4 5 6] var1 = 4 5 6 >> var2 var2 = 1 2 3

2
>> var3 = 'Mostly Harmless' var3 = Mostly Harmless >> var3(2:9) ans = ostly Ha Strings – vectors of characters

3
Control Structures Sequence Repetition Selection

4
Sequence Pop1=23 birthRate=0.2 deathRate=0.1 birth=Pop1 * birthRate death=Pop1 * deathRate change=birth - death Pop2=Pop1 + change (The commands are executed one after the other)

5
Repetitions

6
Reminder function pop = popDynam(popSize1, birthRate, deathRate) birth = popSize1 * birthRate; death = popSize1 * deathRate; change = birth - death; popSize2 = popSize1 + change; pop = [popSize2 birth death]; end Please note the indentation.

7
>> popDynam(23,0.2,0.1) ans = 25.3000 4.6000 2.3000 >>

8
popDynam([23 0.2 0.1]) An Alternative approach is to encapsulate the three parameters in a single element – a vector.

9
function pop=popDynam(popParam) popSize1 = popParam(1); birthRate = popParam(2); deathRate = popParam(3); birth = popSize1 * birthRate; death = popSize1 * deathRate; change = birth - death; popSize2 = popSize1 + change; pop = [popSize2 birth death]; end

10
>> popDynam([23 0.2 0.1]) ans = 25.3000 4.6000 2.3000 >>

11
The vector [23 0.2 0.1] represents the parameters of a population. How would we represent the parameters of three populations?

12
popParam = [23 0.2 0.1; 38 0.25 0.05; 17 0.5 0.4] popParam = 23.0000 0.2000 0.1000 38.0000 0.2500 0.0500 17.0000 0.5000 0.4000 >> popParam(:,1 ) population size popParam(:,2) birth rate popParam(:,3) death rate

13
function pop=popDynam(popParam) for iPop = 1:3 popSize1 = popParam(iPop,1); birthRate = popParam(iPop,2); deathRate = popParam(iPop,3); birth = popSize1 * birthRate; death = popSize1 * deathRate; change = birth - death; popSize2 = popSize1 + change; pop(iPop,:) = [popSize2 birth death]; end

14
function pop=popDynam(popParam) for iPop = [1 2 3] popSize1 = popParam(iPop,1); birthRate = popParam(iPop,2); deathRate = popParam(iPop,3); birth = popSize1 * birthRate; death = popSize1 * deathRate; change = birth - death; popSize2 = popSize1 + change; pop(iPop,:) = [popSize2 birth death]; end What is the output of this function?

15
function pop=popDynam(popParam) for iPop = [1 3] popSize1 = popParam(iPop,1); birthRate = popParam(iPop,2); deathRate = popParam(iPop,3); birth = popSize1 * birthRate; death = popSize1 * deathRate; change = birth - death; popSize2 = popSize1 + change; pop(iPop,:) = [popSize2 birth death]; end What is the output of this function?

16
function pop=popDynam(popParam) for iPop = 1:size(popParam,1) popSize1 = popParam(iPop,1); birthRate = popParam(iPop,2); deathRate = popParam(iPop,3); birth = popSize1 * birthRate; death = popSize1 * deathRate; change = birth - death; popSize2 = popSize1 + change; pop(iPop,:) = [popSize2 birth death]; end But the input matrix may be larger….

17
Selection if (Pop1>60) deathRate=0.15 birthRate=0.12 end

18
If-else-end if (Pop1>60) deathRate=0.15 birthRate=0.12 else deathRate=0.1 birthRate=0.2 end

19
If-elseif-end if (Pop1>60) deathRate=0.15 birthRate=0.12 elseif ((Pop1>40) & (Pop1<61)) deathRate=0.13 birthRate=0.18 else deathRate=0.1 birthRate=0.2 end and

20
Relational operators < > <= >= == (equals) ~= (does not equal) Logical operators & (and) ~ (not) | (or) e.g.,: if ((A>B) | (B~=C))

21
Logical expressions cab be interpreted >> 10 > 1 ans = 1 >> 10 > 100 ans = 0

22
Logical expressions cab be applied to vectors and matrices >> popParam popParam = 23.0000 0.2000 0.1000 38.0000 0.2500 0.0500 17.0000 0.5000 0.4000 >> popParam(:,1) > 30 ans = 0 1 0

23
The “find” command >> popParam popParam = 23.0000 0.2000 0.1000 38.0000 0.2500 0.0500 17.0000 0.5000 0.4000 >> find( popParam(:,1) > 30) ans = 2

24
Repetition with logical condition >> i = 10; >> while (i > 0) disp(1/i); i = i - 1; end 0.1000 0.1111 0.1250 0.1429 0.1667 0.2000 0.2500 0.3333 0.5000 1 >> commands output

25
A bug >> i = 10; >> while (i < 11) disp(1/i); i = i - 1; end commands

26
A bug >> i = 10; >> while (i < 11) disp(1/i); i = i - 1; end 0.1000 0.1111 0.1250 0.1429 0.1667 0.2000 0.2500 0.3333 0.5000 1 Inf -0.5000 -0.3333 commands

27
>> i = 10; >> while (i < 11) disp(1/i); if (isinf(1/i)) error('Bad number'); end i = i - 1; end 0.1000 0.1111 0.1250 0.1429 0.1667 0.2000 0.2500 0.3333 0.5000 1 Inf ??? Bad number

Similar presentations

OK

Addison Wesley is an imprint of © 2010 Pearson Addison-Wesley. All rights reserved. Engineering Computation with MATLAB Second Edition by David M. Smith.

Addison Wesley is an imprint of © 2010 Pearson Addison-Wesley. All rights reserved. Engineering Computation with MATLAB Second Edition by David M. Smith.

© 2018 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on data handling for class 7th math Ppt on rbi reforms define Ppt on ready to serve beverages for less Download ppt on clauses in english grammar Ppt on the art of war summary Download ppt on great indian mathematicians Ppt on machine translation online Ppt online marketing Product mix ppt on nestle products Presentations ppt online viewer