SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
MAS135: MATLAB for Mechanical
Engineers
Forelesning 6 : FOR- og WHILE-løkker.
Elementvise operasjoner VS
kontrollstrukturer
Victoria Popsueva
Bergen, C208
17 september 2018
Programmering i MatLab
Denne uka:
• Løkker: for- og while-løkker
• Løkker inni løkker
• Kontrollstrukturer vs. operatorer
Løkker
• Sammen med betingede tester (if- og switch-setninger) kan vi
kontrollere flyten i et dataprogram vha. løkker.
• Vi skal gå gjennom to typer løkker:
1. For-løkker. De gangene vi VET HVOR MANGE GANGER vi skal gjøre
en operasjon. Kjører fra f.eks. i=1:10 – 10 ganger. Må ha en
«tellevariabel» for eksempel i
2. While-løkker. De gangene vi IKKE VET HVOR MANGE GANGER MEN
kjører så lenge et GITT VILKÅR ER OPPFYLT
FOR VS WHILE:
FOR-LØKKE
Kjører frem til n oppnår
sitt gitte maks-verdi.
Her: 15
WHILE-LØKKER
Kan ikke kjøre til uendelig.
Må stoppe en eller annen
Gang, f.eks. når vi er fornøyd
med presisjon. Eller når
leddene ikke endrer seg mer
enn et gitt tall.
For-løkke
• Når vi trenger å gjøre en operasjon flere gangar (og vi vet hvor mange
ganger), bruker vi en for-løkke.
• Syntaks:
for i = start : slutt
… en eller fleire kommandoer!
…
…
end
Eksempel: for-løkke
for i = 1 : 4
kvadrat=i^2;
fprintf(’%i kvadrert = %i n’,i,kvadrat);
end
• NB! Her er ikke i ein vektor, men en teller-variabel. Første
gang løkka kjører er i = 1, neste gang er i = 2 osv til i = 4
Oppgave
• Lag et skript som regner ut summen av en rekke ved hjelp av en løkke:
• 1 + 1/2 + 1/4 + 1/8 + 1/16 + 1/32 …. 1/(2^n)
• n blir spesifisert av brukeren.
• Regn ut for n=5,10,20.
• Hva skjer med rekka når n går mot ∞?
While-løkker
• Vi bruker while-løkker når vi skal gjenta en operasjon mange ganger,
men ikke vet hvor mange på forhånd.
• Løkka blir avsluttet når et vilkår er oppfylt. For eksempel hvis en skal
finne summen av en uendelig rekke og leddene blir mindre enn et gitt
tall.
While-løkker
• Vilkåret i løkka må inneholde minst en variabel.
• Når vilkåret ikkje lenger er oppfylt (sant), slutter løkka å gå.
• Variabelen i «vilkåret» må kunne endres for at vilkåret skal kunne bli
«usant»
• Hvis ikke denne variabelen blir endret mellom while og end vil vi få ei
uendelig løkke – vilkåret blir alltid oppfylt.
• Hvis vilkåret er ALDRI oppfylt vil ikke løkken starte.
• Vår forsiktig når vilkåret uformes!
Eksempel
Kode:
x=2; % Initialiserer variabelen x.
while x<= 17 % Løkka gjentar seg så lenge x<=17.
x=3*x % Regner ut x=3*x og skriver ut.
end % Avslutter løkka.
Resultat:
x =
6
x =
18
Lag et skript som regner ut ex for en gitt x ved å bruke
Taylorrekka til ex. Først, les inn x og spesifiser det
første leddet i rekka til å være 1. Bruk så en while-løkke
til å regne ut de påfølgende leddene og legg disse til
summen. La løkka stoppe når leddene blir mindre enn
0.0001 og når antall ledd er større enn 30.
Eksempel - ex
Løkker inni løkker
• Hvis det er hensiktsmessig kan en programmere løkker inni løkker.
• Struktur:
for k=1:n
for i=1:m
kommando
kommando
end
End
Og elles så mange man vil - men husk måtehold 
Oprasjoner på matriseelementer er
eksempler på doble for-løkker
Kontrollstrukturer vs. operatorer
• Kontrollstrukturene i MatLab (if, switch, for, while) er felles for mange
programmeringsspråk.
• I tillegg er det en del funksjoner og operatorer som er laget nettopp
for å slippe å bruke kontrollstrukturene.
• Eksempel er elementvise operasjonar (./ og .* og .^) og logiske
operatorar.
Kontrollstrukturer vs. operatorer
• Eksempel er et funksjonsplott. Løsning vha. løkke:
x = [0:0.2:5];
for i=1:length(x)
y(i)=0.5*sin(x(i))^2 – cos(x(i))^2;
end
plot(x,y)
Kontrollstrukturer vs. operatorer
• Eksempel er et funksjonsplott. Løsning vha. elementvise
operasjoner:
x = [0:0.2:5];
y = 0.5*sin(x).^2 – cos(x).^3;
plot(x,y)
• Når vi skal gjøre det samme med alle elementene i vektoren x er
det bra å bruke elementvise operasjonar. (Men det «ligger
kontrollstrukturer under som vi ikkje ser» – bare nærmere
«maskinspråket»)
Kontrollstrukturer vs. operatorer
• Et annet eksempel:
Lag en 3x5-matrise der verdien til hvert element i rekke nummer i og
kolonne nummer j er differansen mellom indeksene delt på summen
av indeksene: (i-j)/(j+i)
• Kan denne oppgaven løses vha. elementvise operasjoner? Eller må vi
bruke løkker??
• VI KAN IKKE LØSE DETTE VED ELEMENTVIS OPERASJON, fordi:
• 1) Vi kan ikke definere en operasjon som er LIK for alle elementene
• 2) Vi må ha direkte tilgang til rekke-og kolonneindekser i og j
Kontrollstrukturar vs. operatorar
rekker = 3;
kolonner = 5;
a = zeros(rekker, kolonner);
% Genererer elementene i matrisen a vha. to løkker.
for i=1:rekker
for j=1:kolonner
a(i,j)=(i-j)/(i+j);
end
end
Eksempel: bruk av relasjonsoperatorer
>> w = [0 2 1 -1 0 -2];
>> v = [4 -2 -1 5 0 1];
>> v<=w
ans =
0 1 1 0 1 0
>> t=v(v<=w)
t =
-2 -1 0

Mais conteúdo relacionado

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Mas135 forelesning6

  • 1. MAS135: MATLAB for Mechanical Engineers Forelesning 6 : FOR- og WHILE-løkker. Elementvise operasjoner VS kontrollstrukturer Victoria Popsueva Bergen, C208 17 september 2018
  • 2. Programmering i MatLab Denne uka: • Løkker: for- og while-løkker • Løkker inni løkker • Kontrollstrukturer vs. operatorer
  • 3. Løkker • Sammen med betingede tester (if- og switch-setninger) kan vi kontrollere flyten i et dataprogram vha. løkker. • Vi skal gå gjennom to typer løkker: 1. For-løkker. De gangene vi VET HVOR MANGE GANGER vi skal gjøre en operasjon. Kjører fra f.eks. i=1:10 – 10 ganger. Må ha en «tellevariabel» for eksempel i 2. While-løkker. De gangene vi IKKE VET HVOR MANGE GANGER MEN kjører så lenge et GITT VILKÅR ER OPPFYLT
  • 4. FOR VS WHILE: FOR-LØKKE Kjører frem til n oppnår sitt gitte maks-verdi. Her: 15 WHILE-LØKKER Kan ikke kjøre til uendelig. Må stoppe en eller annen Gang, f.eks. når vi er fornøyd med presisjon. Eller når leddene ikke endrer seg mer enn et gitt tall.
  • 5. For-løkke • Når vi trenger å gjøre en operasjon flere gangar (og vi vet hvor mange ganger), bruker vi en for-løkke. • Syntaks: for i = start : slutt … en eller fleire kommandoer! … … end
  • 6. Eksempel: for-løkke for i = 1 : 4 kvadrat=i^2; fprintf(’%i kvadrert = %i n’,i,kvadrat); end • NB! Her er ikke i ein vektor, men en teller-variabel. Første gang løkka kjører er i = 1, neste gang er i = 2 osv til i = 4
  • 7. Oppgave • Lag et skript som regner ut summen av en rekke ved hjelp av en løkke: • 1 + 1/2 + 1/4 + 1/8 + 1/16 + 1/32 …. 1/(2^n) • n blir spesifisert av brukeren. • Regn ut for n=5,10,20. • Hva skjer med rekka når n går mot ∞?
  • 8. While-løkker • Vi bruker while-løkker når vi skal gjenta en operasjon mange ganger, men ikke vet hvor mange på forhånd. • Løkka blir avsluttet når et vilkår er oppfylt. For eksempel hvis en skal finne summen av en uendelig rekke og leddene blir mindre enn et gitt tall.
  • 9. While-løkker • Vilkåret i løkka må inneholde minst en variabel. • Når vilkåret ikkje lenger er oppfylt (sant), slutter løkka å gå. • Variabelen i «vilkåret» må kunne endres for at vilkåret skal kunne bli «usant» • Hvis ikke denne variabelen blir endret mellom while og end vil vi få ei uendelig løkke – vilkåret blir alltid oppfylt. • Hvis vilkåret er ALDRI oppfylt vil ikke løkken starte. • Vår forsiktig når vilkåret uformes!
  • 10. Eksempel Kode: x=2; % Initialiserer variabelen x. while x<= 17 % Løkka gjentar seg så lenge x<=17. x=3*x % Regner ut x=3*x og skriver ut. end % Avslutter løkka. Resultat: x = 6 x = 18
  • 11. Lag et skript som regner ut ex for en gitt x ved å bruke Taylorrekka til ex. Først, les inn x og spesifiser det første leddet i rekka til å være 1. Bruk så en while-løkke til å regne ut de påfølgende leddene og legg disse til summen. La løkka stoppe når leddene blir mindre enn 0.0001 og når antall ledd er større enn 30. Eksempel - ex
  • 12. Løkker inni løkker • Hvis det er hensiktsmessig kan en programmere løkker inni løkker. • Struktur: for k=1:n for i=1:m kommando kommando end End Og elles så mange man vil - men husk måtehold 
  • 13. Oprasjoner på matriseelementer er eksempler på doble for-løkker
  • 14. Kontrollstrukturer vs. operatorer • Kontrollstrukturene i MatLab (if, switch, for, while) er felles for mange programmeringsspråk. • I tillegg er det en del funksjoner og operatorer som er laget nettopp for å slippe å bruke kontrollstrukturene. • Eksempel er elementvise operasjonar (./ og .* og .^) og logiske operatorar.
  • 15. Kontrollstrukturer vs. operatorer • Eksempel er et funksjonsplott. Løsning vha. løkke: x = [0:0.2:5]; for i=1:length(x) y(i)=0.5*sin(x(i))^2 – cos(x(i))^2; end plot(x,y)
  • 16. Kontrollstrukturer vs. operatorer • Eksempel er et funksjonsplott. Løsning vha. elementvise operasjoner: x = [0:0.2:5]; y = 0.5*sin(x).^2 – cos(x).^3; plot(x,y) • Når vi skal gjøre det samme med alle elementene i vektoren x er det bra å bruke elementvise operasjonar. (Men det «ligger kontrollstrukturer under som vi ikkje ser» – bare nærmere «maskinspråket»)
  • 17. Kontrollstrukturer vs. operatorer • Et annet eksempel: Lag en 3x5-matrise der verdien til hvert element i rekke nummer i og kolonne nummer j er differansen mellom indeksene delt på summen av indeksene: (i-j)/(j+i) • Kan denne oppgaven løses vha. elementvise operasjoner? Eller må vi bruke løkker?? • VI KAN IKKE LØSE DETTE VED ELEMENTVIS OPERASJON, fordi: • 1) Vi kan ikke definere en operasjon som er LIK for alle elementene • 2) Vi må ha direkte tilgang til rekke-og kolonneindekser i og j
  • 18. Kontrollstrukturar vs. operatorar rekker = 3; kolonner = 5; a = zeros(rekker, kolonner); % Genererer elementene i matrisen a vha. to løkker. for i=1:rekker for j=1:kolonner a(i,j)=(i-j)/(i+j); end end
  • 19. Eksempel: bruk av relasjonsoperatorer >> w = [0 2 1 -1 0 -2]; >> v = [4 -2 -1 5 0 1]; >> v<=w ans = 0 1 1 0 1 0 >> t=v(v<=w) t = -2 -1 0