You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 50 Next »

 

Læringsmål:

  • Bruk av True/False (1/0) 
  • Logiske operatorer
  • Sannhetsmatriser/lister

Pensum

  • 3.7.1 - 3.7.3
  • Kap 1.3
  • Kap 1.6
  • Kap 4.1 - 4.3

Sannhetsmatriser eller logiske matriser skal benyttes i denne oppgaven. En sannhetsmatrise inneholder sannhetsverdierFeks: 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?

    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?

    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. Hun får følgende matrise over høyden på hyblene:

    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 for de elementene i data som ligger mellom lower og upper. Dette gjøres ved å finne sannhetsmatrisen for data med lower, så med upper og til slutt sammenligne disse to matrisene.
    Dersom man kjører isBetween(flatHeight, 20, 50), vil den returnerte matrisen se slik ut:

    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.

     

    Under er det vist hvordan matrisen filteredHeight 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

  • No labels