Ladda ner presentationen
Presentation laddar. Vänta.
1
KPP053, HT2015 MATLAB, Föreläsning 4
Logiska uttryck if-satser switch-satser while-loopar for-loopar Funktionsfiler
2
Logiska uttryck Formulerar en likhet eller en olikhet som ett påstående. Ger 1 om uttrycket är sant, ger 0 om det är falskt >> 4 < 5 % 4 ”är mindre än” 5 ans = 1 >> 4 == 5 % 4 ”är lika med” 5 ans = % ”lika med” skrivs ’==’ för att 0 % skilja det från en tilldelningssats
3
Kombinera logiska uttryck
~ framför ett utryck gör sant till falskt, och vice versa. & mellan två logiska utryck ger 1 om båda är sanna. | mellan två logiska uttryck ger 1 om något av dem är sant. >> ~(3==4) ans = 1 >> 4==4 & 3==4 >> 4==4 | 3==4
4
Sammanställning av logiska uttryck
Betydelse x == y x lika med y x ~= y x skiljt från y x < y x mindre än y x > y x större än y x <= y x mindre än eller lika med y x >= y x större än eller lika med y any(x) något element i x skiljt från noll all(x) alla element i x skilda från noll Uttryck Betydelse a & b Om både a och b är sant a | b Om a eller b är sant ~a Om a inte är sant
5
if Kör kod enbart då ett givet logiskt villkor uppfylls. if n == 0
disp(’n is zero’) end
6
if … else Utför en av två olika instruktioner if n == 0
disp(’n is zero’) else disp(’n is nonzero’) end
7
if … elseif … else Används för att växla mellan flera olika fall.
if n == 0 disp(’n = 0’) elseif n == 1 disp(’n = 1’) else disp(’other value’) end
8
switch Används för att växla mellan flera olika fall. switch n case 0
disp(’n = 0’) case 1 disp(’n = 1’) otherwise disp(’other value’) end
9
while Utför samma sak om och om igen så länge ett givet villkor fortfarande uppfylls. a = 0 i = 1 while i <= 10 a = a+i; i = i+1; end
10
for Utför samma sak för alla värden i en vektor a = 0 for i = 1:10
a = a+i; end
11
break Avbryter en loop direkt
12
pause Stoppar programmet tills valfri tangent trycks ned.
13
Funktionsfiler Kan innehålla mer avancerad kod än en anonym funktion
Måste börja med nyckelordet funktion Exempel: function [output] = funktionsnamn(input) output = input; %Den här funktionen ger %tillbaks samma värde som %den får.
14
Funktionsfiler En funktionsfil kan innehålla flera olika funktioner, men då kan enbart den första funktionen anropas från andra program. En variabel i en funktion kan ha samma namn som en variabel som definierats i komando-fönstret utan att dessa två blandas ihop. Alla variabler i en funktion raderas automatiskt när funktionen kört färdigt.
15
Särskilda funktioner i funktionsfiler
nargin %talar om hur många ingående parametrar funktion %fick när den anropades nargout %talar om hur många utparametrar %som förväntades vid anropet varargin %kan anges i stället för namn på ingående parametrar %för att lagra alla ingående parametrar %(oavsett antal) i cellvektorn varargin varargout %som ovan fast för utgånde variabler return %avslutar funktionen direkt. om utparametrarna har %tilldelats ett värde skickas detta som svarpå anropet.
16
Exempel Skapa en funktion som tar en matris som input, och sedan söker igenom den efter det första negativa element i varje rad. Finns i boken på s. 153 (men med en lite annan lösning).
17
Felsökning Ofta kan man lösa problem bara genom att provköra ett skript eller en funktion, och läsa eventuella felmedelanden eller varningar. Om man ändå inte lyckas fastslå var felet uppstår kan det vara hjälpligt att kunna stoppa programmet på en given platts för att t.ex. kunna kontrollera vilket värde en given variabel har för tillfället. När det kommer till felsökning är skillnaden mellan MATLAB och FreeMAT ganska stor.
18
Felsökning, MATLAB Vänsterklicka till höger om radnumret för att lägga till en breakpoint
19
Felsökning, MATLAB Testkör programmet
Om det rör sig om en funktion kan man lägga till ingående argument.
20
Felsökning, MATLAB Fortsätt steg för steg
(eller till nästa brytpunkt med ”continue”)
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.