http://se.mathworks.com/help/matlab/ref/magic.html
Læringsmål:
- Bruk av True/False (1/0)
- Logiske operatorer
- Sannhetsmatriser/lister
...
Sannhetsmatriser eller logiske matriser skal benyttes i denne oppgaven. Disse er på formen: sannhetsListe = (liste)(betingelse)En sannhetsmatrise inneholder sannhetsverdier.
Feks: fiveOrMore = [1,2,3,4,5,6,7,8]>=5;
Gir: [0,0,0,0,1,1,1,1].
Små deloppgaver kan skrives i et skript.
a)
...
Hva gjør kodesnutten under?
Code Block language
...
none times = [10,59,58,30,49,9,26,55,48,58] % Leveringstider i minutter til resturantkjeden pi*z^2*a function res = someFunction(times) pizzaLife = 30; % Etter ca 30 min er en pizza kald
...
variable = (
...
times > pizzaLife) res = sum(
...
variable); end
b)
...
Hva gjør kodesnutten under?
Code Block language
...
none times = [10,59,58,30,49,9,26,55,48,58] function res = someFunction2(times) pizzaLife = 30; % Etter ca 30 min er en pizza kald
...
variable = (
...
times > pizzaLife) res = times(
...
variable); end
c)
...
Cheryl skal ta et semester i Singapore og er på jakt etter en plass å bo. Hun har høydeskrekk og vil derfor ikke bo høyt oppe, men pga trafikkstøy kan hun ikke bo for lavt heller. Hun inngår et kompromiss med seg selv og finner ut at 20-50m er bra intervall. Utleienettsiden i Singapore
...
lar Carol
eksportere kart over alle hybler med høyde.HTML Comment hidden true Cheryl/Carol er en Archer referanse
...
Hun får følgende matrise over høyden på hyblene:
Code Block language
...
none
...
flatHeight = [[32,31,27,21,13,6,6,13,21,27,31] [49,46,41,32,23,13,13,23,32,41,46] [66,63,55,44,32,21,21,32,44,55,63] [86,81,69,55,41,27,27,41,55,69,81] [106,97,81,63,46,31,31,46,63,81,97] [128,106,86,66,49,32,32,49,66,86,106] [106,97,81,63,46,31,31,46,63,81,97] [86,81,69,55,41,27,27,41,55,69,81] [66,63,55,44,32,21,21,32,44,55,63] [49,46,41,32,23,13,13,23,32,41,46] [32,31,27,21,13,6,6,13,21,27,31]];
flatHeight plottet ved hjelp av vedlagt fil
Lag funksjonen
isBetween(data, lower, upper)
som returnerer en sannhetsmatrise
...
hvor de elementene i data som ligger innenfor det ønskede intervallet mellom
lower
ogupper
...
d)
...
er satt til
true
og alle andre elementer er satt tilfalse.
Code Block language text title Eksempel på kjøring >> isBetween(flatHeight, 20, 50) ans = 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1
d)
Opprett en ny matrise, filteredHeight, hvor elementene har verdi 0 hvis tilsvarende element i data er utenfor Cheryls ønskede bohøyde. Ellers skal elementene ha samme verdi som i flatHeight.
Code Block language text title Hvordan resultatet skal se ut filteredHeight = 32 31 27 21 0 0 0 0 21 27 31 49 46 41 32 23 0 0 23 32 41 46 0 0 0 44 32 21 21 32 44 0 0 0 0 0 0 41 27 27 41 0 0 0 0 0 0 0 46 31 31 46 0 0 0 0 0 0 0 49 32 32 49 0 0 0 0 0 0 0 46 31 31 46 0 0 0 0 0 0 0 41 27 27 41 0 0 0 0 0 0 44 32 21 21 32 44 0 0 49 46 41 32 23 0 0 23 32 41 46 32 31 27 21 0 0 0 0 21 27 31
filteredHeight plottet med plotter-funksjonen