SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
MAS135: MATLAB for Mechanical
Engineers
Forelesning 4 : Repetisjon: matriser. Input/
output
Victoria Popsueva
Bergen, C208
03 september 2018
Mer om matriser
Matlab sine innebygde funksjoner (cos(), sin(), sqrt(), cosh(), sinh(),
factorial(), log() osv.) kan ta både skalarer og matriser/vektorer som
argument. Hvis de får inn en matrise eller en vektor så returnerer de en
matrise eller en vektor:
 >> x = [0:pi/6:pi]
 x =0 0.5236 1.0472 1.5708 2.0944 2.6180 3.1416
 >> y = cos(x)
 y = 1.0000 0.8660 0.5000 0.0000 -0.5000
 -0.8660 -1.0000
Matrise som argument:
• Eks.:
• >> d=[1 4 9; 16 25 36; 49 64 81];
• >> h=sqrt(d)
• h =
• 1 2 3
• 4 5 6
• 7 8 9
Innebygde funksjoner for analyse av
vektorer/matriser
Når A er input matrisen:
• mean(A) -gjennomsnitt
• max(A) -maksimum
• min(A) -minimum
• sum(A) -summen
• sort(A) -sorterer i
stigende rekkefølge
• median(A) -medianen
• std(A) - standardavvik
• det(A) - determinant
• dot(a,b) -
prikkproduktet av
vektorene a og b
• cross(a,b) -
kryssproduktet av
vektorene a og b
• inv(A) - den inverse
Input og Output
• I et program kan vi definere interne variable og tilordne dem
verdier
• Disse verdiene kan enten leses inn fra skjerm eller fra en fil (input)
• Etter at programmet har kjørt ferdig kan de relevante verdiene
skrives ut på skjerm eller en output-fil
Input fra skjerm
• En (forhåpentligvis kjent!) måte å lese inn verdiene på er
input-kommando
variabel_navn = input('Tekst som skrives ut i
kommandovinduet')
f.eks: rentesats = input(‘Skriv inn rentesatsen! ‘);
• Man kan også lese inn en tekststreng
variabel_navn = input('Tekst', 's')
Output til skjerm
• MatLab lager automatisk utskrift til skjerm når man
ikke skriver semikolon
• Kommando disp gir utskrift til skjerm:
disp(variabelnavn) eller
disp('Tekst som skal vises på skjerm')
• Kan kun vise en variabel om gangen, men denne
variabelen kan være en vektor eller en matrise
Utskrift til skjerm/fil
• Kommando fprintf kan brukes til utskrift både til
skjerm og til en fil
• For å skrive ut tekst til skjerm:
fprintf('Teksten som skal skrives ut ')
• n for å bryte opp linjen
• t tilsvarer TAB-tasten
• b tilsvarer BACKSPACE-tasten
Utskrift til skjerm/fil
Man kan skrive ut både tekst og tall i samme
kommando
fprintf('Tekst %-5.2f mer tekst', variabelnavn)
%-tegnet markerer hvor tallet skal skrives ut
- tegnet justerer mot venste (valgfritt)
5.2 angir antall gjeldende sifre (valgfritt)
f (format)
Mer om fprintf
• Vi kan skrive ut flere variabler, gjerne både tall og
tekststrenger:
fprintf(’tekst %5.2f %5.2f %s mer tekst n’,
tall_1, tall_2, tekststreng)
• NB! Når en variabel er en vektor eller en matrise vil
utskriften gjenta seg for hvert element!
Utskrift til fil
• Tre steg: åpne filen, skrive til filen og lukke filen
• Åpne fil: f_id = fopen(’filnavn’, ’tilgang’)
F_id er en variabel som identifiserer filen
• Tilgang: ’r’ lesetilgang, ’w’ skrivetilgang (overskriver
det som eventuelt var i filen fra før av) ’a’ (append)
fortsetter å skrive etter de eksisterende data
Utskrift til fil
• For å skrive til fil bruker vi som før kommandoen
fprintf, men vi må også angi fil-identifikasjon (f_id)
fprintf(f_id, ’tekst %s %i %f mer tekst n’, variabel1,
variabel2, variabel3)
• Lukke filen med kommando fclose:
fclose(f_id)
Utskrift til fil
• Man kan lage flere utskriftfiler. Da må man først åpne
filene ved å bruke fopen og gi filene hver sin f_id, f.eks
f_id1, f_id2, etc
• Vi kan også lagre (og hente fram) variablene som ligger i
workspace ved å skrive
save filnavn eller
save(’filnavn’)
• Da blir variablene lagret i en fil filnavn.mat og kan hentes
fram vha load filnavn eller load(’filnavn’)
Oppgave
• Lag et script som regner ut volumet til en kloss med en
gitt lengde, bredde og høyde, som skal leses inn fra
skjerm
• Skriv ut resultatet på skjerm (med både tekst og tall)
og til en fil
Programmering i MatLab
• Kontrollstrukturer: brukes for å kontrollere rekkefølgen til
kommandoene
• Noen ganger trenger man å utføre samme kommando flere ganger
• Andre ganger trenger ikke alle kommandoer å bli utført (når man for
eksempel skal gjøre valg avhengig av forskjellige situasjoner)
If-tester
• Når man trenger å gjøre valg avhengig av at en betingelse er oppfylt
• For eksempel: Et script som regner ut lønn til en arbeider. For inntil 40
timer i uka betaler man vanlig timelønn, og for overtid betaler man 50
% ekstra
• Dersom man kjenner timelønnen og antall timer, trenger man å sjekke
om antall timer er mer enn 40
If-tester (forts.)
• Pseudokode:
• Les inn antall timer (t) og timelønn (l)
• Regn ut ”vanlig” lønn ved å gange sammen l og t
Hvis antall timer (t) > 40
-> regn ut og legg til overtidsbetaling
ellers
gjør ingenting
If-test (forts.)
• t = input('antall timer ');
• l = input('timelønn ');
• betaling = t*l;
• if t > 40
• overtid = (t-40)*0.5*l;
• betaling = betaling + overtid;
• end
• fprintf('Betaling: %5.2f n', betaling);
If-test (forts.)
• clear;
• betaling = 0;
• t = input('antall timer ');
• l = input('timelønn ');
• if t > 40
• betaling = t*l + (t-40)*0.5*l;
• else
• betaling = t*l;
• end
• fprintf('Betaling: %5.2f n', betaling);
Enda en if-test
• clear;
• betaling = 0;
• t = input('antall timer ');
• l = input('timelønn ');
• if t > 40
• betaling = t*l + (t-40)*0.5*l;
• elseif t<=0
• fprintf('Noe galt! ');
• else
• betaling = t*l;
• end
• fprintf('Betaling: %5.2f n', betaling);
Relasjonsoperatorer
• Relasjonsoperatorer:
• > større
• < mindre
• >= større eller lik
• <= mindre eller lik
• == lik
• ~= ikke lik
Logiske operatorer
• & OG: for eksempel A & B er sant når både A og B er sant
• | ELLER: for eksempel A | B er sant når enten A eller B er sant
• ~ IKKE: for eksempel ~A sant når A er usann
Eksempel: &
• clear;
• betaling = 0;
• t = input('antall timer ');
• l = input('timelønn ');
• if t > 40
• betaling = t*l + (t-40)*0.5*l;
• elseif (t>0)&(t<=40)
• betaling = t*l;
• else
• fprintf('Noe galt! n')
• end
• fprintf('Betaling: %5.2f n', betaling);
Oppgave:
• Lag et script som regner ut volumet til en kloss, der lengde, bredde og
høyde blir lest inn fra skjerm
• Lag en if-test som sjekker om noen av de innleste verdiene er
negative eller null, og kun regner ut volumet dersom verdiene er
positive. I motsatt tilfelle bør det skrives ut en feilmelding

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 forelesning4

  • 1. MAS135: MATLAB for Mechanical Engineers Forelesning 4 : Repetisjon: matriser. Input/ output Victoria Popsueva Bergen, C208 03 september 2018
  • 2. Mer om matriser Matlab sine innebygde funksjoner (cos(), sin(), sqrt(), cosh(), sinh(), factorial(), log() osv.) kan ta både skalarer og matriser/vektorer som argument. Hvis de får inn en matrise eller en vektor så returnerer de en matrise eller en vektor:  >> x = [0:pi/6:pi]  x =0 0.5236 1.0472 1.5708 2.0944 2.6180 3.1416  >> y = cos(x)  y = 1.0000 0.8660 0.5000 0.0000 -0.5000  -0.8660 -1.0000
  • 3. Matrise som argument: • Eks.: • >> d=[1 4 9; 16 25 36; 49 64 81]; • >> h=sqrt(d) • h = • 1 2 3 • 4 5 6 • 7 8 9
  • 4. Innebygde funksjoner for analyse av vektorer/matriser Når A er input matrisen: • mean(A) -gjennomsnitt • max(A) -maksimum • min(A) -minimum • sum(A) -summen • sort(A) -sorterer i stigende rekkefølge • median(A) -medianen • std(A) - standardavvik • det(A) - determinant • dot(a,b) - prikkproduktet av vektorene a og b • cross(a,b) - kryssproduktet av vektorene a og b • inv(A) - den inverse
  • 5. Input og Output • I et program kan vi definere interne variable og tilordne dem verdier • Disse verdiene kan enten leses inn fra skjerm eller fra en fil (input) • Etter at programmet har kjørt ferdig kan de relevante verdiene skrives ut på skjerm eller en output-fil
  • 6. Input fra skjerm • En (forhåpentligvis kjent!) måte å lese inn verdiene på er input-kommando variabel_navn = input('Tekst som skrives ut i kommandovinduet') f.eks: rentesats = input(‘Skriv inn rentesatsen! ‘); • Man kan også lese inn en tekststreng variabel_navn = input('Tekst', 's')
  • 7. Output til skjerm • MatLab lager automatisk utskrift til skjerm når man ikke skriver semikolon • Kommando disp gir utskrift til skjerm: disp(variabelnavn) eller disp('Tekst som skal vises på skjerm') • Kan kun vise en variabel om gangen, men denne variabelen kan være en vektor eller en matrise
  • 8. Utskrift til skjerm/fil • Kommando fprintf kan brukes til utskrift både til skjerm og til en fil • For å skrive ut tekst til skjerm: fprintf('Teksten som skal skrives ut ') • n for å bryte opp linjen • t tilsvarer TAB-tasten • b tilsvarer BACKSPACE-tasten
  • 9. Utskrift til skjerm/fil Man kan skrive ut både tekst og tall i samme kommando fprintf('Tekst %-5.2f mer tekst', variabelnavn) %-tegnet markerer hvor tallet skal skrives ut - tegnet justerer mot venste (valgfritt) 5.2 angir antall gjeldende sifre (valgfritt) f (format)
  • 10. Mer om fprintf • Vi kan skrive ut flere variabler, gjerne både tall og tekststrenger: fprintf(’tekst %5.2f %5.2f %s mer tekst n’, tall_1, tall_2, tekststreng) • NB! Når en variabel er en vektor eller en matrise vil utskriften gjenta seg for hvert element!
  • 11. Utskrift til fil • Tre steg: åpne filen, skrive til filen og lukke filen • Åpne fil: f_id = fopen(’filnavn’, ’tilgang’) F_id er en variabel som identifiserer filen • Tilgang: ’r’ lesetilgang, ’w’ skrivetilgang (overskriver det som eventuelt var i filen fra før av) ’a’ (append) fortsetter å skrive etter de eksisterende data
  • 12. Utskrift til fil • For å skrive til fil bruker vi som før kommandoen fprintf, men vi må også angi fil-identifikasjon (f_id) fprintf(f_id, ’tekst %s %i %f mer tekst n’, variabel1, variabel2, variabel3) • Lukke filen med kommando fclose: fclose(f_id)
  • 13. Utskrift til fil • Man kan lage flere utskriftfiler. Da må man først åpne filene ved å bruke fopen og gi filene hver sin f_id, f.eks f_id1, f_id2, etc • Vi kan også lagre (og hente fram) variablene som ligger i workspace ved å skrive save filnavn eller save(’filnavn’) • Da blir variablene lagret i en fil filnavn.mat og kan hentes fram vha load filnavn eller load(’filnavn’)
  • 14. Oppgave • Lag et script som regner ut volumet til en kloss med en gitt lengde, bredde og høyde, som skal leses inn fra skjerm • Skriv ut resultatet på skjerm (med både tekst og tall) og til en fil
  • 15. Programmering i MatLab • Kontrollstrukturer: brukes for å kontrollere rekkefølgen til kommandoene • Noen ganger trenger man å utføre samme kommando flere ganger • Andre ganger trenger ikke alle kommandoer å bli utført (når man for eksempel skal gjøre valg avhengig av forskjellige situasjoner)
  • 16. If-tester • Når man trenger å gjøre valg avhengig av at en betingelse er oppfylt • For eksempel: Et script som regner ut lønn til en arbeider. For inntil 40 timer i uka betaler man vanlig timelønn, og for overtid betaler man 50 % ekstra • Dersom man kjenner timelønnen og antall timer, trenger man å sjekke om antall timer er mer enn 40
  • 17. If-tester (forts.) • Pseudokode: • Les inn antall timer (t) og timelønn (l) • Regn ut ”vanlig” lønn ved å gange sammen l og t Hvis antall timer (t) > 40 -> regn ut og legg til overtidsbetaling ellers gjør ingenting
  • 18. If-test (forts.) • t = input('antall timer '); • l = input('timelønn '); • betaling = t*l; • if t > 40 • overtid = (t-40)*0.5*l; • betaling = betaling + overtid; • end • fprintf('Betaling: %5.2f n', betaling);
  • 19. If-test (forts.) • clear; • betaling = 0; • t = input('antall timer '); • l = input('timelønn '); • if t > 40 • betaling = t*l + (t-40)*0.5*l; • else • betaling = t*l; • end • fprintf('Betaling: %5.2f n', betaling);
  • 20. Enda en if-test • clear; • betaling = 0; • t = input('antall timer '); • l = input('timelønn '); • if t > 40 • betaling = t*l + (t-40)*0.5*l; • elseif t<=0 • fprintf('Noe galt! '); • else • betaling = t*l; • end • fprintf('Betaling: %5.2f n', betaling);
  • 21. Relasjonsoperatorer • Relasjonsoperatorer: • > større • < mindre • >= større eller lik • <= mindre eller lik • == lik • ~= ikke lik
  • 22. Logiske operatorer • & OG: for eksempel A & B er sant når både A og B er sant • | ELLER: for eksempel A | B er sant når enten A eller B er sant • ~ IKKE: for eksempel ~A sant når A er usann
  • 23. Eksempel: & • clear; • betaling = 0; • t = input('antall timer '); • l = input('timelønn '); • if t > 40 • betaling = t*l + (t-40)*0.5*l; • elseif (t>0)&(t<=40) • betaling = t*l; • else • fprintf('Noe galt! n') • end • fprintf('Betaling: %5.2f n', betaling);
  • 24. Oppgave: • Lag et script som regner ut volumet til en kloss, der lengde, bredde og høyde blir lest inn fra skjerm • Lag en if-test som sjekker om noen av de innleste verdiene er negative eller null, og kun regner ut volumet dersom verdiene er positive. I motsatt tilfelle bør det skrives ut en feilmelding