Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

http://se.mathworks.com/help/matlab/ref/magic.html

 

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 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) 

Lag funksjonen wholeNumber. Funksjonen tar inn ett tall og returnerer 1 eller 0 om tallet er et heltall eller ei.

b)

Lag funksjonen evenNumber. Den skal returnere "true" om et tall er partall eller "false" for oddetall.

c)

Lag en funksjon som avgjør om et tall er positivt eller negativt.

d)

Sett sammen funksjonene slik at programmet ser ca slik ut:

Oppgi tall: 5.1
Dette er ikke et heltall. 
Det er positivt.
Oppgi tall: 4
Dette er et heltall.
Dette er et partall.
Dette er et positivt tall.  

e) 

...

  • Hva gjør kodesnutten under?

    Code Block
    languagenone
    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
    languagenone
    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

    HTML Comment
    hiddentrue

    Cheryl/Carol er en Archer referanse

     eksportere kart over alle hybler med høyde. Hun får følgende matrise over høyden på hyblene:

    Code Block
    languagenone
    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]];

    Image Added

                                              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 og upper er satt til true og alle andre elementer er satt til false. 

    Code Block
    languagetext
    titleEksempel 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
    languagetext
    titleHvordan 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


     Image Added
                                           filteredHeight plottet med plotter-funksjonen