MATLAB 7 i kursen experimentella metoder



Relevanta dokument
MATLAB 6 i kursen experimentella metoder. Sten Hellman Fysikum Stockholms Universitet

ComsolScript 1.2 i kursen experimentella metoder

MATLAB 6 i kursen experimentella metoder Sten Hellman

Introduktion till Matlab

ComsolScript 3.2 i kursen experimentella metoder

Introduktion till Matlab

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer

Laborationer i kursmomentet Datoranvändning E1. Laboration nr 5: Mer om FrameMaker

Octave i kursen experimentella metoder

Laboration: Grunderna i Matlab

Läs detta innan du fortsätter, eller skriv ut det, klicka runt lite och läs samtidigt.

Introduktion till Matlab

Färgklövern. Färgklövern är gjord 1998 i samarbete mellan Datateket i Linköping och Hargdata AB i Linköping.

Laboration: Grunderna i MATLAB

Resurscentrum för kommunikation Dako SymWriter. Minimanual

Resurscentrum för kommunikation Dako SymWriter 2. Minimanual

Migrera till Word 2010

RödGrön-spelet Av: Jonas Hall. Högstadiet. Tid: minuter beroende på variant Material: TI-82/83/84 samt tärningar

Referens till. WeavePoint 6 Mini

Artiklar via UB:s sö ktja nst

En handledning för studerande på Högskolan Kristianstad

MATLAB 6 i kursen experimentella metoder

Rapportmallen är uppbyggd med omslag, titelsida, sidor för förord, sammanfattning och innehåll, samt en sida där du ska börja skriva din text.

1284_omslag.qxd :13 Sida 1 ECDL START OFFICE 2003 Allmän IT Windows XP Word 2003 Outlook 2003

MATLAB 6 i kursen experimentella metoder

ViTex snabbguide. 1. Inläsning till ViTex från scanner eller PDF Läs in text via scanner Läs in text från en JPEG-bild eller ett PDF-dokument

Kom igång med Windows 8.1

Funktioner och grafritning i Matlab

Introduktion till Matlab

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Användarmanual för Hemsida

Lathund för överföring av rapporter och ljudfiler

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Att komma igång med FirstClass (FC)!

Mikromarc 2 Meddelandecenter

Föreläsning 3.1: Datastrukturer, en översikt

InPrint. Grunderna för hur du kommer igång och arbetar med Communicate: InPrint. Habilitering & Hjälpmedel

Datorövning 1 Statistik med Excel (Office 2010, svenska)

Datorövning 1 Statistik med Excel (Office 2007, svenska)

Öppna dokumentet. Det heter ecdlfil.doc (Du får instruktioner om var)

Kapitel 15: Data/Matrix Editor

Lägg märke till skillnaden, man ser det tydligare om man ritar kurvorna.

För support videos, webinstruktioner och mer information besök oss på

E-POST3 Ett lättanvänt e-postprogram med stöd för talsyntes

Grunderna i stegkodsprogrammering

ADAD-net. Användarmanual INDIVIDEN. Råbe och Kobberstad Februari 2010

En guide till FirstClass

Manual. till. Cantor Madison Medri

talets Piteå. En CD-skiva utgiven till Carina Bäckströms minne

MMA132: Laboration 1 Introduktion till MATLAB

Software Translator 6.1 Manual

Instruktion för laboration 1

Introduktion till datormiljön och Python

Föreningarnas nya sidmall. Version 4,

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

Microsoft Windows 10 Grunder

Ordbehandling för PM och uppsatsskrivning med Word xp

Introduktion till Word och Excel

Mer om Outlook. Extratexter till kapitel 4 Mejla. I avsnittet lär du dig: vad Outlook idag är och kan användas till

Datorövning 1 Statistik med Excel (Office 2007, svenska)

Får jag be om ordet!

Linjär algebra med tillämpningar, lab 1

Laboration: Att inhägna ett rektangulärt område

Matematisk Modellering

Introduktion till Matlab

STADSBYGGNADSFÖRVALTNINGEN. Aktivitetsstöd. Behörigheten Föreningsadministratör. Datum: Version 2. Sidan 1 (30)

Clicker 5. Lathund kring de vanligaste och mest grundläggande funktionerna för att komma igång med Clicker. Habilitering & Hjälpmedel

QlikView - Lathund för Flödesmodellen bas

namn, inklusive katalogtillhörigheten. Den andra saken vi måste förstå är något som kallas "den atlab

Microsoft Publisher. Laborationskompendium för digital behandling av publikationer. Detta exemplar tillhör:

Editering, Kompilering och Exekvering av Javaprogram

Skapa ett register över din grupp/klass

Handbok KDE:s Menyeditor. Milos Prudek Anne-Marie Mahfouf Lauri Watts Översättare: Stefan Asserhäll

FLEXILAGER Ett hjälpmedel för anpassad lagerhantering. Original -version

Instruktion arbeta med rapportmallen

Marie Andersson, IKT-centrum E-post: (Bb Learn 9.1.8) Wikis i Blackboard

Elisabeth Bejefalk IT-Assistent Avesta kommun

DigitalBild del 1 Adobe Photoshop Elements ver 6.0

Nallelek Lärarvägledning

Textsträngar från/till skärm eller fil

Snabbgenomgång. Windows Live Movie Maker

Introduktion till Matlab

Sidor i boken , , 3, 5, 7, 11,13,17 19, 23. Ett andragradspolynom Ett tiogradspolynom Ett tredjegradspolynom

Lathund GUL Lärare. Allmänt. Hur du presenterar Dig själv för kursdeltagarna. Hur du lägger upp din kontaktlista

Manual för Typo3 version 4.04

SymWriter. Lathund kring hur du arbetar med programmet SymWriter med de absolut vanligaste grunderna. Habilitering & Hjälpmedel

Survey&Report steg för steg: Skapa rapport

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x

Programmeringsteknik med C och Matlab

2. Komma igång Skapa grupper och elever Skriv också ut sidan 13 så att eleverna har en snabbguide till programmet.

Innehållsförteckning. Manual WebCT

Användarmanual Jobb i Stan. CV-Handboken. Registrering, jobbsökning mm. Copyright Aditro. All rights reserved.

Diagram. I detta kapitel lär du dig: m Diagrammets beståndsdelar. m Att skapa både inbäddat diagram och diagramblad. m Att ändra diagramform.

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

PIM Skriva

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Classfronter Vägledning för Studenter (version 1.1)

Kom igång. Version 3

Projektarbete 2: Interaktiv prototyp

Switch Driver 5. Programvara för Radio Switch, JoyBox och JoyCable. Sensory Software

Transkript:

MATLAB 7 i kursen experimentella metoder av Sten Hellman med Introduktion till Microsoft Word av Jonas Strandberg Övningsuppgifter av Sten Hellman, Max Karlovini, Teresia Månson & Jonas Strandberg

ii 3:a upplagan, Stockholm 2005. c Sten Hellman, Stockholms universitet.

Innehåll 1 Inledning 1 1.1 Vad är MATLAB?................................. 1 1.2 Konventioner.................................... 2 2 Att komma igång 3 2.1 De första stegen - Hello World......................... 3 2.1.1 Logga in på datorn............................. 3 2.1.2 Logga in på afs............................... 3 2.1.3 Starta Matlab................................ 4 2.1.4 Matlabs Skrivbord (Desktop)...................... 4 2.1.5 Say Hello.................................. 6 2.1.6 Matlabs hjälpfunktion........................... 6 2.1.7 Avsluta Matlab............................... 8 2.2 Börja Räkna.................................... 8 2.2.1 Matlab som en räknedosa......................... 8 2.2.2 Operatorer................................. 8 2.2.3 Variabler.................................. 9 2.2.4 Konstanter................................. 11 2.3 Miljön i Matlab................................... 12 2.3.1 Städa upp kommandofönstret: tyst input, fortsättningsrader..... 12 2.3.2 Format och avrundning.......................... 12 2.3.3 Matlabs Workspace........................... 13 2.3.4 Play it again Sam - att upprepa kommandon............. 13 2.3.5 Att återkalla kommandon......................... 14 2.3.6 Matlabs historiefönster........................... 15 2.4 M-filer........................................ 15 2.4.1 Editorn för M-filer............................. 15 2.4.2 Att spara en M-fil på disk......................... 16 2.4.3 Läsa in och köra en m-fil......................... 16 2.4.4 Kommentarer................................ 17 2.4.5 In- och utmatning av data till M-filer.................. 18 2.4.6 Utskrift när M-filen kör - Echo kommandot............... 19 2.4.7 Paus i utskriften.............................. 19 2.4.8 Namngivning av M-filer.......................... 19 2.5 Litet om vektorer................................. 20 2.5.1 Skapa vektorer............................... 20 2.5.2 Räkna med vektorer............................ 21 2.5.3 Elementvisa operationer.......................... 21 2.5.4 Litet om matriser.............................. 22 2.5.5 Räkna med matriser............................ 23 2.6 Inbyggda funktioner................................ 23 iii

iv INNEHÅLL 2.6.1 Operationer på skalärer.......................... 24 2.6.2 Operationer på vektorer.......................... 24 2.6.3 Operationer på matriser.......................... 25 2.7 Övningsuppgifter.................................. 27 3 Hitta på datorn. Börja programmera 29 3.1 Att navigera på datorn............................... 29 3.1.1 Minne och hårddisk på en dator..................... 29 3.1.2 Filnamn och Sökvägar........................... 30 3.1.3 Fullständiga filnamn............................ 31 3.1.4 Aktuell katalog............................... 32 3.1.5 Current directory browser........................ 32 3.1.6 Var söker MATLAB efter filer....................... 33 3.1.7 Var skall jag spara filer.......................... 34 3.2 Att spara och läsa tillbaks innehållet i workspace................ 35 3.3 Villkorssatser.................................... 35 3.4 Slingor........................................ 36 3.4.1 for-slingor.................................. 37 3.4.2 while-slingor................................ 37 3.4.3 Att hoppa ut ur en slinga - kommandot break.............. 38 3.5 Funktioner..................................... 39 3.5.1 Syntaxen för funktioner.......................... 39 3.5.2 help för en funktion............................ 40 3.5.3 Testa antalet argument.......................... 40 3.6 Övningsuppgifter.................................. 42 4 Ordbehandling med Microsoft Word 43 4.1 Allmänna kommentarer.............................. 43 4.2 Textbehandling................................... 43 4.2.1 Typsnitt................................... 45 4.2.2 Storlek på texten.............................. 45 4.2.3 Fet, kursiv och understruken text..................... 45 4.2.4 Att justera texten............................. 45 4.2.5 Att göra en rubrik............................. 46 4.3 Egna formatmallar................................. 47 4.4 Lägga till knappar till verktygsfältet....................... 47 4.5 Sidbrytning..................................... 47 4.6 Sidnumrering.................................... 48 4.7 Stavningskontroll.................................. 48 4.8 Fotnoter....................................... 49 4.9 Numrerade listor.................................. 49 4.10 Tabeller....................................... 50 4.10.1 Tabelltext.................................. 51 4.11 Figurer....................................... 51 4.11.1 Ankra bilder................................ 51 4.11.2 Figurtext.................................. 52 4.12 Speciella symboler................................. 52 4.13 Ekvationer...................................... 52 4.14 Spara dokument.................................. 53 4.15 Övningsuppgifter.................................. 54

INNEHÅLL v 5 Felsökning - Debuggning. 57 5.1 MATLABs debugger................................ 58 5.2 Övningsuppgifter................................. 60 6 2D-Grafik 61 6.1 Kurvor i två dimensioner............................. 62 6.1.1 Att växla mellan fönster, och städa i fönster............... 62 6.1.2 plot-kommandot.............................. 63 6.1.3 Styra utseendet på grafiken........................ 63 6.1.4 Koordinataxlar.............................. 64 6.1.5 Text..................................... 65 6.2 Plotta punkter med fel............................... 66 6.3 Histogram...................................... 66 6.3.1 Kommandot bar - stapeldiagram..................... 66 6.3.2 Kommandot hist - histogram....................... 67 6.3.3 Kommandot stairs - konturdiagram.................... 67 6.3.4 Kommandot stem - stolpdiagram..................... 67 6.4 Utskrifter av grafik................................. 68 6.5 Spara grafer och flytta till andra program.................... 68 6.5.1 Lägga in bilder i Word........................... 69 6.6 Fler Kurvor i samma graf - kommandot hold................... 69 6.7 Fler grafer i samma fönster - kommandot subplot................ 70 6.8 Rita i grafer..................................... 71 6.9 Logaritm-skalor................................... 72 6.10 Övningsuppgifter.................................. 73 7 Gränssnitt, text-strängar, beräkningar och anpassningar 75 7.1 MATLABs Workspace Browser.......................... 75 7.1.1 Array Editorn................................ 76 7.1.2 Anpassa MATLABs Desktop....................... 76 7.2 Text-strängar.................................... 77 7.2.1 Manipulera textsträngar.......................... 77 7.2.2 Delsträngar................................. 78 7.3 Enkel statistik................................... 78 7.4 Polynom....................................... 79 7.4.1 Hitta rötter till polynom.......................... 79 7.4.2 Finn polynomuttryck för givna rötter.................. 79 7.4.3 Värden på polynom............................ 79 7.4.4 Derivator av polynom........................... 80 7.4.5 Produkter och kvoter av polynom.................... 80 7.5 Matrisekvationer.................................. 80 7.6 Minsta kvadratanpassning............................. 80 7.7 Minsta kvadratanpassning med matrismetod................... 82 7.8 Övningsuppgifter.................................. 84 8 Programmering 85 8.1 Att programmera.................................. 85 8.1.1 Design av programmet........................... 85 8.1.2 Dokumentation av programmet...................... 87 8.2 Formaterad in- och utmatning........................... 87 8.2.1 Läs data och strängar från kommandofönstret - kommandot input... 87

vi INNEHÅLL 8.2.2 Formatera strängar för utmatning - Formatkoder och kommandot sprintf 88 8.3 Övningsuppgifter.................................. 90 9 Mer grafik och programmering 91 9.1 Mer om 2D-grafik.................................. 91 9.1.1 Avancerade kommandon för 2-D grafik.................. 91 9.2 Att redigera en graf interaktivt.......................... 92 9.2.1 Grafikfönstrets egenskaper......................... 92 9.2.2 Grafens egenskaper............................. 92 9.3 Handtags-grafik................................... 93 9.3.1 Linjens egenskaper............................. 93 9.3.2 Axlarnas egenskaper............................ 93 9.3.3 Figurens egenskaper............................ 94 9.4 3-D grafik...................................... 94 9.4.1 Kurvor i rymden - plot3.......................... 94 9.4.2 Funktionsytor - mesh och surf....................... 95 9.4.3 Att styra utseendet av en 3D-graf.................... 95 9.4.4 Konturplottar och projektioner...................... 96 9.4.5 Gradientplottar............................... 96 9.5 Mer om programmering och funktioner...................... 97 9.5.1 Linjär korrelationskoefficient....................... 97 9.5.2 Viktad anpassning till rät linje...................... 98 9.5.3 Viktad anpassning och plottning av rät linje............... 99 9.6 Övningsuppgifter.................................. 102 10 Svar och lösningar 103 10.2 Svar till kapitel 2.................................. 103 10.3 Svar till kapitel 3.................................. 104 10.5 Svar till kapitel 5.................................. 105 10.6 Svar till kapitel 6.................................. 105 10.7 Svar till kapitel 7.................................. 106 10.8 Svar till kapitel 8.................................. 107

Kapitel 1 Inledning Det här kompendiet är avsett att användas i kursen Den experimentella metoden som ingår i första årskursen i fysiklinjen vid Stockholms Universitet. Kompendiet är inte avsett att vara en komplett kurs i MATLAB utan strävar till att ge en introduktion till programmet, och mer detaljerade kunskaper inom de områden som är nödvändiga för kursen Den experimentella metoden. Tonvikten ligger inom två områden: beräkningar för att behandla mätvärden från laborationer, och grafisk presentation av mätdata och resultat, främst då 2D grafik. Detta upplägg innebär att en del områden inte alls kommer att beröras, som till exempel komplexa tal, 3D grafik och mer avancerade matematik-tillämpningar. Vi är dock förvissade om att man efter att ha följt kursen har så goda kunskaper i att använda MATLAB så att det skall vara relativt enkelt att på egen hand läsa in andra områden vartefter behov av det uppstår. Programmet MATLAB har en mycket väl utvecklad hjälpfunktion, men som med alla andra program kan det vara svårt att veta vad man skall be om hjälp med innan man har nått en viss kunskapsnivå. Dessutom kan det ibland vara besvärligt att vara hänvisad till engelska termer. För att träna upp det interaktiva hjälpsökandet använder kompendiet flitigt hänvisningar till MATLABs egen dokumentation. Kompendiet är skrivet i avsikt att läsas i en följd, många avsnitt bygger direkt på tidigare avsnitt, en hel del av de exempel som ges förutsätter att föregående exempel har körts. Organisationen och innehållet i det här kompendiet har lånat mycket ur ett kompendium av Hans Mühlen - MATLAB - som kom i flera upplagor under åren 1987-93. Sedan den första versionen producerades har många fel rensats ut och många förbättringar gjorts med hälp av de doktorander som arbetat som assistenter på kursen: Annelie Ehlerding, Attila Hidvégi, Max Karlovini, Teresia Månsson och Jonas Strandberg. Björn Selldén har bidragit med en mäng korrigeringar och förbättringar. Tack för hjälpen! 1.1 Vad är MATLAB? MATLAB är ett kommersiellt program, eller snarare programpaket, för matematiska beräkningar och grafisk presentation. MATLAB-paketet har en mängd utbyggnadsmöjligheter med färdiga moduler och kan användas för ett stort antal mer eller mindre specialiserade beräknings- och simuleringsuppgifter. I den här kursen, och även i övrigt här på fysikum, använder vi oss av MATLAB dels för att skriva program för att genomföra beräkningar, till exempel för att bearbeta lab-resultat, dels för att presentera resultat i grafisk form. Som alla andra program har MATLAB sina styrkor och svagheter. Namnet MATLAB stod ursrpungligen för MATrix LABoratory, och även om MATLAB har utvecklats enormt sedan det döptes så är matrishanteringen fortfarande en av de starka sidorna hos MATLAB, något 1

2 KAPITEL 1. INLEDNING som kommer att komma till stor användning under den här kursen. Rent allmänt är MAT- LAB väldigt förlåtande, man behöver till exempel inte - som i de flesta högnivåspråken för programmering - göra skillnad mellan heltal och decimaltal. Man behöver inte heller i förväg tala om hur stora vektorer skall vara. Det finns gott stöd för att producera grafik, men det kan i början kännas litet avigt att man inte enkelt kan plotta sin(x) mot x, utan först måste man konstruera en vektor med x-värden och en annan vektor med y-värden och sedan plotta dem mot varandra. Vi skall också komma ihåg att MATLAB är ett matematikprogram, inte ett ordbehandlingsprogram. Vi kommer alltså att behöva komplettera vår arsenal med ett program som hanterar text och figurer för att kunna producera dokumentationen av våra experiement. 1.2 Konventioner I detta kompendium används endast ett fåtal typografiska konventioner. En är när vi visar exakt hur det ser ut när man skriver in kommandon i MATLABs kommandofönster och får output tillbaks till det fönstret. Sådana exempel visas inom en ram: Kommandot som skrivs in Respons från MATLAB Ibland refererar vi till kommandon och variabler i löpande text, och markerar då detta genom att skriva variabelnamnet med särskilt typsnitt a = sin(x). Referenser till MATLABs hjälp-dokument skrivs med initialt? och särskilt typsnitt, t.ex.?/matlab/reference/matlab Function Reference/Mathematics/Elementary Math/ Hur man använder en sådan referens för att söka ett avsnitt i dokumentationen beskrivs i avsnitt 2.1.6. Notera också att MATLAB använder den anglosaxiska konventionen där decimalkommat inte skrivs med komma utan med punkt. Således är 2,3 ett talpar medan 2.3 är ett decimaltal.

Kapitel 2 Att komma igång Efter det första dataövningspasset skall du kunna: Logga in på ditt studentkonto på Fysikums datorer Starta MATLAB Använda MATLAB som en enkel mini-räknare Återkalla MATLAB kommandon från historie-filen. 2.1 De första stegen - Hello World Det finns en slags tradition inom litteraturen om datorprogram och programmeringsspråk enligt vilken den första uppgiften man skall lösa när man ger sig i kast med ett nytt program eller språk är att få programmet att skriva Hello World på skärmen. Det här kan verka litet fånigt, men det är faktiskt inte så dumt. Visserligen är det vi kräver av själva programmet tämligen trivialt, men för att det hela skall fungera måste vi kunna en hel del saker om den miljö i vilket programmet fungerar: vi måste kunna logga in på den dator där programmet skall köras, hitta och starta programmet, få programmet att acceptera våra instruktioner om vad som skall utföras, köra programmet och till sist få programmet att kommunicera ett resultat, vanligtvis via en bildskärm. Kan vi klara av alla dessa uppgifter så kan vi i fortsättningen koncentrera oss på att få programmet att lösa mer och mer komplicerade uppgifter. 2.1.1 Logga in på datorn. Hur man loggar in på datorerna på övningslabbet kommer troligen att variera med tiden. Det beror också på vilket operativsystem den dator du skall arbeta vid använder. Här beskrivs hur det går till att logga in på en dator som kör operativsystemet Windows under vårterminen 2005. Skulle du misslyckas att komma in på det sätt som beskrivs här kan det bero på att förhållandena ändrats, så fråga en assistent om du är tveksam. I normalfallet kommer datorn att visa upp en inloggningsruta på skärmen där användarnamnet redan är ifyllt som student. Allt du behöver göra är då att klicka på OK så loggas du in, och kan börja arbeta. 2.1.2 Logga in på afs För att kunna komma åt dina egna filer på ditt afs-konto måste du logga in dit. Det gör du enklast genom att klicka på det lilla hänglåset till höger i listen längst ned på skärmen. I menyn som kommer upp klickar du på obtain new tokens. I inloggningsrutan skall AFS 3

4 KAPITEL 2. ATT KOMMA IGÅNG cell vara su.se, och sedan fyller du i ditt användarnamn och lösenord. AFS inloggningen gäller bara en viss tid, det kan därför vara klokt att ungefär en gång i timmen klicka på hänglåset och obtain new tokens, detta för att undvika att afs-förbindelsen bryts mitt i en word-session. Om det händer kan du förlora mycket arbete. 2.1.3 Starta Matlab När du är inloggad kan du se ett antal små bilder - ikoner - på skärmen. Varje ikon är en symbol för ett objekt som finns i datorn. Det kan vara en fil, en mapp (katalog) eller ett program. Vad som händer när du dubbelklickar på en ikon beror på vad ikonen är en symbol för, är det t ex en symbol för en fil skapad i programmet Microsoft Word kommer programmet Microsoft Word att starta och öppna filen. På din skärm kommer du att ha en ikon som visar MATLABs symbol. Den ikonen är länkad direkt till programmet MATLAB, så genom att dubbelklicka på den startar MATLAB. En alternativ metod att starta MATLAB är att klicka på den lilla fyrkanten längst ned, märkt med Windows-symbolen och ordet Start. Då öppnas en meny med ett antal alternativ varav ett är Program. Klickar du på den raden så öppnas en mindre meny (det är innebörden av symbolen ), där väljer du MATLAB och i den meny som då kommer upp väljer du åter MATLAB 7.0. (om MATLAB 7.= inte syns så klicka på symbolen i botten av menyn så öppnas fler alternativ) och på den meny som då öppnas återigen MATLAB 7.0. 2.1.4 Matlabs Skrivbord (Desktop) När MATLAB har startat öppnas ett nytt fönster på din dator som kan se litet olika ut beroende på vilka inställningar som har sparats, men det blir i alla fall en version av det som kallas MATLABs skrivbord. En variant av skrivbordet ser ut som nedan, men bli alltså inte förskräckt om det inte ser riktigt likadant ut.

2.1. DE FÖRSTA STEGEN - HELLO WORLD 5 Vi skall senare (avsnitt 7.1.2) ta en närmare titt på hur man kan förändra utseendet på det som MATLAB visar så att informationen kan anpassas till vad vi vill göra under ett givet arbetspass. Men låt oss börja med en enkel konfiguration för att först bekanta oss litet med MATLAB: Gå in i menyn Desktop. Att gå in i en meny betyder att man klickar på menyns titelord, i det här fallet Desktop. När man gör det visas ett litet fönster (ungefär som i figuren härintill) som kallas rullgardinsmeny (pull-down menu). Genom att klicka på något av de ord som står i menyn kan du utföra vissa kommandon. Dessa menyer har ett särskilt symbolspråk, en liten triangel, som den du kan se efter Desktop Layout anger att du genom att klicka på den raden kan öppna upp ytterligare en meny, en undermeny till Desktop Layout. Symbolen Undock Command Window Desktop Layout Save Layout... Organize Layout... Command Window Command History Current Directory Workspace Help Profiler Toolbar Shortcuts Toolbar Titles används för variabler som kan slås på och av i menyn. I det exempel som vi visar här betyder det att Command Window är påslaget, medan de andra alternativen är avslagna. När det står... till höger om ett alternativ betyder det att det öppnas en ny meny där du kan göra ytterligare val om du klickar på det alternativet. Eventuellt är fler alternativ påslagna när du startar MATLAB, slå i så fall av dem genom att klicka på de ord som har symbolen till vänster om sig så att det ser ut som i figuren. När vi nu lämnar menyn genom att klicka någonstans utanför menyfönstret har vi en enkel MATLAB-desktop med ett enda fönster - kommandofönstret öppet. Kommandofönstret (Command Window)

6 KAPITEL 2. ATT KOMMA IGÅNG är det fönster genom vilket vi och MATLAB kommunicerar med varandra, där skriver vi in kommandon och MATLAB skriver ut resultat. 2.1.5 Say Hello Så har vi äntligen kommit fram till den punkt då vi är redo att säga hallå världen. Det som återstår är att instruera MATLAB att skriva ut Hello World på skärmen. Det finns fler sätt att få MATLAB att utföra kommandon, det enklaste som vi skall använda först är att skriva in kommandot i kommandofönstret. När vi skriver ett kommando i kommandofönstret och trycker på return så kontrolleras först att kommandot har en korrekt syntax, dvs att kommandot är skrivet enligt de regler som gäller för MATLABs kommandospråk så att programmet kan tolka instruktionen. Om kommandot vi skrivit in är korrekt utförs det och eventuella resultat visas i kommandofönstret. Det kommando vi skall använda för att säga hallå heter disp() efter engelskans display. Kommandot betyder helt enkelt att MAT- LAB skall visa det som står inom parantesen (argumentet) i kommandofönstret på skärmen. Det som står inom parantesen kan vara en mängd olika storheter, men just nu är vi intresserade av något som kallas för textsträng. En textsträng är en sträng av tecken, omgiven av enkla citationstecken: ( ). MATLAB behandlar en textsträng som en liten låda som man inte, i alla fall inte utan en del möda, kan göra något med annat än att spara och ta fram vid behov. Genom att ge textsträngen Hello World som argument till kommandot disp instruerar vi MATLAB att skriva ut strängen på skärmen. Det sista steget blir alltså att ge kommandot disp( Hello World ) i kommandofönstret, som svar kommer MATLAB att skriva Hello World i kommandofönstret, och vi har klarat av vår första MATLAB uppgift. disp( Hello World ) Hello World Lägg märke till att under tiden som du skriver strängen så är den mörkröd, och att den skiftar färg till lila när du skriver det andra citationstecknet och fullbordar en korrekt sträng. Det här är ett stöd som MATLAB ger oss för att underlätta att skriva korrekta kommandon. Vi återkommer senare till en genomgång av annan hjälp vi kan få. 2.1.6 Matlabs hjälpfunktion MATLAB har en mycket omfattande on-line dokumentation, och kraftfullt stöd för hjälpfunktionen. Det finns fler sätt att hitta information på, så vi kommer under kursens gång att lära oss fler olika metoder att få hjälp. Den första metoden vi skall använda är att öppna och använda hjälp-fönstret. Det gör du genom att i MATLABs desktop klicka på? symbolen. Då öppnas ett nytt fönster - Help window, ett fönster som är uppdelat i två pannåer genom en vertikal avgränsning. Den vänstra pannåen används för att navigera i materialet och finna det avsnitt i dokumentationen som vi är intresserade av, i den högra pannån presenteras hjälp-texter. Tittar vi nu först på den vänstra pannån så kan vi välja fyra alternativa sätt att navigera genom att klicka på någon av de fyra flikarna högst upp: contents ger oss en innehållsförteckning där ämnena är grupperade i kapitel och underkapitel i olika nivåer ner till enstaka sidor.

2.1. DE FÖRSTA STEGEN - HELLO WORLD 7 index ger oss tillgång till ett alfabetiskt ämnesregister där vi kan söka om vi vet namnet på det kommando eller det begrepp vi vill veta mer om. search ger oss möjlighet att söka i den samlade dokumentationen. Sökningen kan vara efter såväl enstaka ord som hela fraser. Demos Är en flik där det finns samlat ett antal demos grupperade inom olika ämnen, som t ex Mathematics och Graphics. Dessa ämnen är sedan i sin tur uppdelade i underavdelningar. Denna avdelning av MATLABS hjälpfunktion är ett utmärkt område för självstudier. Låt oss nu ta en närmare titt på vad som möter oss under fliken contents. Schematiskt ser pannån under contents ut så här: Boxarna symboliserar avsnitt i hjälpkatalogen. Genom att klicka på någon av textraderna kommer vi till motsvarande avsnitt i hjälpdokumentationen. Den lilla fyrkanten med ett + -tecken visar att motsvarande symbol innehåller underavdelningar som vi kan göra synliga genom att klicka på plustecknet. När vi gör det - prova! - så öppnas den avdelningen, och vi kan fortsätt att klicka oss fram tills vi når ner till den nivå vi söker. En underavdelning som är öppnad kan stängas igen: klicka bara på minustecknet så stängs motsvarande nivå. I den här kursen kommer vi nästan uteslutande att hålla oss inom den del av dokumentationen som startar med boxen MATLAB. I det här kompendiet används en speciell syntax för att beskriva hur du skall navigera fram till givna avsnitt i hjälpdokumentationen. Låt oss t ex börja med att läsa i dokumentationen hur MATLAB med hjälp av färgkodning och andra trix hjälper oss att skriva korrekta kommandon i kommandofönstret. Till den sidan når du genom att med början i läget som avbildas i figuren ovan klicka på följande titlar: MATLAB Desktop Tools and Development Environment Editing and Debugging M-files Creating, Editing and Running Files Appearance of an M-file Preferences for the Command Window På sidan finns en länk syntax highlightning som leder oss till den sida som beskriver hur MATLAB använder färgkoder för att hjälpa till med syntaxen. För att spara utrymme kommer vi i det här kompendiet att skriva?/matlab / Desktop Tools and Development Environment / Editing and Debugging M-files/ Creating, Editing and Running Files / Appearance of an M-file/ Preferences for the Command Window för klick-serien ovan. När vi har läst färdigt i hjälpfönstret så kan det vara bekvämt att göra sig av med det så att vi lättare kan se kommandofönstret. Det gör vi enklast genom att använda oss av en av symbolerna som visas högst upp till höger i varje fönster (alltså inte bara MATLABs) som visas på datorn. De tre symbolerna används för att hantera fönster i Windowsmiljön. Symbolen till vänster används för att förminska fönstret till en ikon. Prova att klicka på den, och du ser att fönstret försvinner och att vi obehindrat kan se de fönster som tidigare var dolda bakom hjälpfönstret. Det fina i kråksången är att fönstret finns kvar i skepnad

8 KAPITEL 2. ATT KOMMA IGÅNG av en liten symbol Help på listen längst ned på datorskärmen. Genom att klicka på den symbolen återställs fönstret genast. Det här är ett bekvämt sätt att göra det enklare att hitta bland alla sina öppna fönster, de som inte används för tillfället minimerar man bara och de finns fortfarande lätt tillgängliga. Krysset längst till höger stänger det aktuella fönstret. Om detta är topp-fönstret avslutas det program som öppnat fönstret. Klickar vi där i hjälpfunktionen så avslutas MATLABs hjälpfunktion och vi får börja om från början och klicka på? om vi vill ha mer hjälp. Den mittersta symbolen slutligen används för att maximera ett fönsters storlek, klickar vi på den så förstoras fönstret så att det täcker hela datorskärmen. Det här kan vara bekvämt om man till exempel vill kunna läsa en hel sida i dokumentationen på skärmen utan att behöva bläddra upp och ner på skärmen. När vi är klara klickar vi bara en gång till på samma symbol och fönstret återtar sin ursprungliga storlek. Ett annat sätt att få hjälp är att i kommandofönstret skriva help kommando, där kommando byts ut mot namnet på det kommando man söker hjälp om. Detta leder ofta snabbare fram till den information man söker än att söka i dokumentationen. Svårigheten är bara att man måste ha en första idé om vad det är man vill ha hjälp med så att man har något vettigt att skriva in i stället för kommando. 2.1.7 Avsluta Matlab Det finns två sätt att avsluta MATLAB. Du kan antingen gå in i menyn File och där välja exit MATLAB eller också trycka på ctrl Q (trycker samtidigt ner tangenten ctrl i nedre vänstra hörnet av tangentbordet och tangenten Q ). 2.2 Börja Räkna 2.2.1 Matlab som en räknedosa Enklare matematiska operationer görs precis som på en vanlig räknedosa (med normal, dvs ej omvänd polsk notation à la HP-räknare) med den lilla skillnaden att vi trycker på return i stället för = när vi vill beräkna resultatet. Pröva t ex att beräkna 2+2: 2 + 2 ans = 4 2.2.2 Operatorer För aritmetik har MATLAB de vanliga (och en litet ovanlig) operatorerna: + Addition - Subtraktion Multiplikation / Division \ Vänsterdivision Exponentiering, till exempel x 2 = x 2 Komplex konjugering och transponering ( ) Paranteser för att definiera prioritetsordning Prioritetsordningen mellan operatorerna är den normala så att när man till exempel skriver 3 * 4 + 3*2 3 så beräknas först, 2 3, därefter de bägge produkterna och sedan summan. 1 1 Notera att Matlab ingorera mellanslag i alla uttryck. Det spelar alltså ingen roll om vi skriver 2+3+4*5 eller 2 + 3 + 4*5 eller 2 + 3 + 4 * 5. För att det skall bli enklare att följa uttrycken så är det mellersta sättet

2.2. BÖRJA RÄKNA 9 2.2.3 Variabler I MATLAB kan man liksom i alla högnivåspråk definiera variabler, och tilldela dessa värden. Dels underlättar det arbetet genom att man inte behöver upprepa inmatning av samma värde fler gånger, dels gör det instruktionerna enklare att följa och förstå - åtminstone om man väljer namn på konstanterna som är begripliga. Antag som ett exempel att en läskeblask kostar 10 kronor, en varmkorv 12 och en kaffe 4. Om då Kalle köper en korv och fyra kaffe, Lisa en läskeblask och två korvar och Ludde tre korvar och två läskeblask, så kan vi räkna ut vad var och en fick betala på följande sätt (minns att varje rad måste avslutas med return för att MATLAB skall utföra kommandot): att skriva (som ansluter till prioritetsordningen) att föredra.

10 KAPITEL 2. ATT KOMMA IGÅNG laskeblask = 10 laskeblask = 10 korv = 12 korv = 12 kaffe = 4 kaffe = 4 Kalle = 2*korv + 4*kaffe Kalle = 40 Lisa = laskeblask + korv Lisa = 22 Ludde = 3*korv + 2 *laskeblask Ludde = 56 I exemplet ovan är laskeblask, korv, kaffe, Kalle, Lisa och Ludde alla variabler. Variabler kan alltså tilldelas värden antingen explicit (uttryckligen) genom t ex korv = 12, eller genom en beräkning som t ex Kalle = 2*korv + 4*kaffe. Observera att man som alltid måste vara noga med syntaxen, eller programmeringsspråkets grammatik. Det går inte att skriva Dyrt = 3 korv Prova! Du kommer att få ett prov på hur MATLAB vänligt, men inte särskilt diskret hjälper en tillrätta när man får syntaxen fel. Glömmer man bort vad en läsk kostar kan vi fråga MATLAB: laskeblask laskeblask = 10 En fallgrop man får akta sig för är att variabler vars värde beräknas, som t ex Kalle ovan behåller det värde som variabeln tilldelats senaste gången den beräknas, även om en av de variabler som ingår när man beräknar variabelns värde ändras. Ett exempel: kola = 0.5 kola = 0.5000 klubba = 2.50 klubba = 2.5000 Sune = 20 * kola + 4 * klubba Sune = 20 klubba = 5.00 klubba = 5.0000 Sune Sune = 20 Värdet på variabeln Sune ändras alltså inte när värdet på klubba ändras, när värdet på Sune beräknades gällde det gamla värdet på klubba och värdet på Sune förblir oförändrat

2.2. BÖRJA RÄKNA 11 så länge vi inte räknar om det med Sune = 20 * kola + 4 * klubba Sune = 30 Variabelnamn i MATLAB måste börja med en bokstav, följd av en godtycklig kombination av bokstäver (ej å, ä eller ö), siffror eller understrykning ( ), ett variabelnamn kan alltså inte innehålla mellanslag. MATLAB ser skillnad på stor och liten bokstav, ALLA, Alla och alla är alltså tre olika variabler. Om man vill skapa variabelnamn som är sammansättningar av mer än ett ord finns två konventioner: antingen binder man ihop med ett understrykningstecken, eller också skriver man med små bokstäver, men inleder nya ord med versal. Alltså antingen lagsta strom eller LagstaStrom. Vilket du väljer att göra är godtyckligt, men det är bra om man försöker att hålla sig till ett sätt att skriva. Det är ju enkelt att komma ihåg att variabeln är lägsta ström, men om man på vissa ställen skriver lagsta strom och på andra LagstaStrom så kommer man att hänvisa till olika variabler på olika ställen i sin kod. Man bör därför bestämma sig för en konvention och sedan hålla sig till den. Det kan också vara bra att undvika de svenska bokstäverna även om det program man arbetar med stöder dessa. När man skriver många program skaffar man sig vanor, och det är bra om vanorna fungerar i så många olika sammanhang som möjligt. 2.2.4 Konstanter MATLAB har ett antal inbyggda konstanter: pi konstanten π = 3.14159265... i roten ur -1. j samma som i. eps 2 52 den minsta relativa skillnaden mellan två rationella tal, eller uttryckt på annat sätt: det minsta tal man kan addera till 1 och få ett tal som är större än 1. realmin 2 1022, det minsta rationella talet som kan representeras på datorn. realmax (2 eps) 1023, det största rationella talet som kan representeras på datorn. Inf Oändligheten som resultat av en väl definierad matematisk operation, t ex 10/0. NaN Icke definierat (Not a Number), resultatet av en operation där resultate inte är definierat, t ex 0/0 eller Inf - Inf. ans Resultatet av det senaste kommandot. Av dessa kommer vi kanske inte att använda mer än pi (och möjligen ans) i den här kursen, men det är bra att veta att de finns, i vissa lägen kan MATLAB komma att använda dem i felmeddelanden och då är det bra att veta vad till exempel NaN står för. Vi har här valt att kalla dessa tal för konstanter eftersom det är så vi betraktar och använder dem. Rent tekniskt är de dock implementerade som inbyggda funktioner vilket har som en konsekvens att man kan definiera om dem: pi pi = 3.1415 pi = 4.75 pi = 4.7500 De är dock litet mer stabila än vanliga variabler av typ Kalle som vi själva definierar. En variabel vi har definierat kan tas bort så att MATLAB inte längre minns något om dem

12 KAPITEL 2. ATT KOMMA IGÅNG genom att ge commandot clear: clear Kalle Gör vi samma sak med en av konstanterna i tabellen ovan så återställs värdet till det fördefinierade som visas i tabellen. 2.3 Miljön i Matlab 2.3.1 Städa upp kommandofönstret: tyst input, fortsättningsrader När man börjar komma igång litet med att använda MATLAB tycker man ofta att kommandofönstret blir litet ostrukturerat, alla kommandon man ger upprepas slaviskt, vissa värden ges utan decimaler, andra med en lång rad nollor på slutet. Det finns ett antal kommandon som hjälper en att skräddarsy vad vi ser i kommandofönstret. För att stänga av ekot, det vill säga för att få MATLAB att avstå från att rapportera resultatet av varje kommando vi skriver in räcker det med att avsluta raden med semikolon. Egentligen är det inte raden, utan kommandot som avslutas med semikolon. Distinktionen är viktig, eftersom användandet av semikolon gör det möjligt att skriva mer än ett kommando på varje rad. Denna finess bör användas med omdöme, driver man det för långt kan det bli nästan omöjligt att se vad man gjort, men rätt använt kan det istället göra det lättare att följa med: laskeblask = 10; korv = 12; kaffe = 4; Kalle = 2*korv + 4*kaffe Kalle = 40 ser mycket bättre ut än förra gången vi räknade ut Kalles utgifter. Man bör försöka undvika alltför långa kommandon, men ibland kan man behöva skriva kommandon som inte får plats på en rad, som till exempel: Y = ((3.5*(laskeblask+korv)-kaffe)+sin(pi-2.75*Kalle)/korv 2 +(45-kaffe) 3 Om vi behöver dela upp ett kommando på fler rader kan vi göra det: För att tala om för MATLAB att kommandot inte är slut när raden är slut, vilket är vad MATLAB normalt antar, så måste den rad som har en fortsättning avslutas med tre punkter omedelbart följda av return: Y = ((3.5*(laskeblask+korv)-kaffe)+... sin(pi-2.75*kalle)/korv 2+(45-kaffe) 3)) är alltså ett kommando även om det sträcker sig över mer än en rad. 2.3.2 Format och avrundning I exemplen vi sett så här långt har MATLAB genomgående skrivit ut heltal utan decimaler och decimaltal med fyra decimaler. Det senare gäller såväl i de fall där vi har definierat en variabel genom att skriva in bara en decimal som t ex 0.5, som i de fall då MATLAB visar ett tal med oändligt lång decimalutveckling som pi eller 1/3. När vi kommer till mycket stora eller mycket små tal slår MATLAB om till att använda scientific notation, där tal representeras som ett decimaltal multiplicerat med en lämplig tiopotens. I denna notation skrivs till exempel 1.602 10 19 som 1.602e-19. Hur MATLAB skall formattera de tal som visas kan påverkas genom kommandot format. För att se vilka alternativ som finns kan vi gå till help fönstret och söka på

2.3. MILJÖN I MATLAB 13?/MATLAB/Functions Categorical List/Desktop Tools and Development Environment/Command Window and History/Format Eller enklare genom att bara skriva help format Lägg särskilt märke till kommandot som MATLAB spottar ur sig. format compact som tar bort alla dessa blanka rader 2.3.3 Matlabs Workspace Vi har nu sett hur variabler som vi definierar, till exempel laskeblask i avsnitt 2.2.3, lever kvar. Långt efter det att vi definierat dem kan vi använda dem i nya uttryck, och vi kan se vilka värden de har genom att skriva deras namn i kommandofönstret. Det ställe där dessa variabler lever är en del av datorminnet som MATLAB reserverar för variabler och som kallas workspace. Under långa MATLAB sessioner kan MATLABs workspace bli ganska tätbefolkad, man kan lätt samla på sig en stor mängd variabler. Som vi snart kommer att se kan ett variabelnamn beteckna inte bara tal, utan vektorer och matriser med hundratals element. För att vi lättare skall kunna ha översikt och kontroll över de variabler som lever i workspace finns speciella kommandon och verktyg. Det kanske tydligaste är ytterligare ett fönster som kallas just workspace. För att öppna det går vi in i Desktop menyn och sedan Desktop Layou och bockar för Workspace (det gör du genom att klicka på Workspace i menyn). När du gjort det öppnas detta fönster som en pannå i MATLABs desktop. I detta fönster ser du alla variabler som är definierade i den pågående MATLAB sessionen. Varje rad innehåller tre kolumner, den första anger variabelns namn, nästa dess aktuella värden. Slutligen visas vilken klass variabeln tillhör. I workspace-fönstret kan vi manipulera innehållet i variablerna, och också arbeta med workspace självt. Det är till exempel möjligt att spara hela innehållet i workspace till hårddisken för att sedan läsa in det till workspace igen när vi startar nästa MATLAB session. Detta är ett sätt att inte behöva skiva in alla data (som t ex priset på en läskeblask och en varmkorv) varje gång vi vill göra en viss typ av beräkningar. Vi kan också studera variablerna närmare genom att dubbelklicka på namnet för en av dem i workspace-fönstret. Gör vi det öppnas ett fönster med värdet på variabeln. För tal är detta fönster inte särskilt intressant, men om vi gör för en en matris kommer vi att få se en snygg representation av matrisen där vi kan gå in och ändra enstaka element. Vi återkommer till de mer avancerade användningarna av workspace-fönstret senare (när du har tittat klart på det här fönstret stänger du det - precis som alla andra fönster i Windows - genom att klicka på X i övre högra hörnet), Ett alternativt sätt att se vad som finns i workspace är att i kommandofönstret ge kommandot whos. Vi kan nu också förstå litet bättre vad clear kommandot gör: genom att skriva clear Kalle tar vi helt enkelt bort variabeln Kalle från MATLABs workspace, vilket gör att MAT- LAB helt glömmer bort att Kalle existerat. Du kan prova detta genom att skriva clear xxx i kommandofönstret för någon av de variabler som syns i workspace-fönstret och se vad som händer. 2.3.4 Play it again Sam - att upprepa kommandon I Kalle Ankas Julafton finns en film som visar en husvagnstur med Kalle Anka, Musse Pigg och Långben. I en av scenerna sitter Långben och äter en majskolv. När han gör det för han munnen över majskolven, varvid det hörs ett konstigt knattrande ljud. När han kommit till slutet av majskolven hörs ett pling, varvid han flyttar huvudet till andra sidan av majskolven

14 KAPITEL 2. ATT KOMMA IGÅNG och proceduren börjar om. När mina barn ser det här skrattar dom, men dom har ingen aning om vad det hela anspelar på: förr i tiden fanns det skrivmaskiner! När författaren var ung var skrivmaskiner nånting ganska häftigt. Med ganska mycket möda kunde man få ett brev eller ett dokument att se jätteproffsigt ut. Kruxet var bara att skrivmaskiner var fullkomligt skoningslösa - skrev man fel var det bara att riva ut pappret och börja om (på hemma-nivå kunde man förstås backa och kryssa över med ett antal XXXX, men det förtog ganska mycket av effekten). Det fanns speciella suddgummin för skrivmaskier, stenhårda skivor som antingen rev sönder pappret i småbitar eller smetade ut skriften över hela pappret. Så småningom kom TipEx, en vit färg man kunde måla över sina misstag med, och sedan skriva ny text ovanpå. Det blev med ens möjligt att hyfsa till dokument om man gjorde något enstaka fel, men riktigt proffssnyggt blev det inte, och man kunde inte heller ändra hela stycken mitt i ett färdigt dokument. De av oss som har upplevt denna period kan till fullo uppskatta vad ankomsten av små billiga datorer betytt för ordbehandlingen: ändringar blir triviala, felstavningar korrigeras enkelt (ibland till och med automatiskt), man kan återanvända gamla dokument, byta ut stycken helt godtyckligt - aldrig tidigare har så mycket text kunnat produceras med så liten möda! Det vore naturligtvis skönt att kunna få en räknebehandlare som har alla dessa företräden. Har man väl skrivit in Y = ((3.5*(a+b)-c)+sin(phi-2.75*D)/epsil 2+(455-abba )/ (cos(4+pi)-2.75) bara för att komma på att det borde ha varit Y = ((3.5*(a+b)-c)+sin(phi-2.75*B)/epsil 2+ (455-abba 3)/(cos(4+pi)-2.75) så kan man bli litet trött, och önska sig att MATLAB bar sig åt som en ordbehandlare. Om man sedan kommer tillbaks en vecka senare för att räkna om något på en lab-rapport man fått åter på så önskar man verkligen att man kunde trolla tillbaks vad man gjorde förra veckan. MATLAB, och andra moderna beräkningsprogram, svarar upp till dessa förväntningar. Dels finns det ett sk historie-fönster där man kan återkalla sina tidigare kommandon och redigera dessa innan man exekverar dem igen. Dessutom kan man spara hela sekvenser av kommandon i så kallade M-filer som man sedan kan återkalla, eventuellt redigera, och köra igen. 2.3.5 Att återkalla kommandon Det enklaste sättet att få chansen att göra om något vi gjort nyligen är att trycka på upp-pilen på tangentbordet. När vi gör det visas det senast utförda kommandot i kommandofönstret. Trycker vi på pilen en gång till kommer kommandot innan dess och så vidare. När vi knappat oss fram till det kommando vi vill göra om så är det bara att trycka på return så utförs kommandot en gång till. Oftast så återkallar man ju ett kommando för att man gjort något smärre fel som man vill korrigera, vilket är lätt gjort. När man bläddrat fram det kommando man vill göra om kan man flytta sig in i raden genom att trycka på vänster-pil. När man gör det rör sig pekaren in över raden, när den står till höger om det man vill ändra kan man radera ut delar av kommandot genom att trycka på delete-knappen. När man suddat det som är fel är det bara att skriva in vad som skall stå i stället. När man är nöjd är det sedan bara att trycka på return. Oavsett om pekaren står mitt i raden så kommer MATLAB att utföra kommandot som står på hela raden. Man kan också ta sig in i raden genom att bara flytta pekaren till något ställe i raden genom att klicka. Prova genom att t ex skriva y = sin (2 * pi) och sedan till exempel ändra 2 till 3 eller sin till cos.

2.4. M-FILER 15 2.3.6 Matlabs historiefönster Ett annat litet överskådligare sätt att se vad man gjort är att öppna MATLABs historiefönster, gå till Desktop och välj View Command History. När du gör det öppnas ytterligare en pannå i MATLABs desktop. Om du fortfarande har Workspace öppen kommer (oftast, detta kan variera litet med hur MATLAB är inställd) Command History och Workspace att dela på den vänstra pannån, du kan då växla mellan dem genom att klicka på fliken som finns längst ned i denna pannå. När Command History är aktivt så kan du i det se de senaste kommandon du utfört i kommandofönstret. Om du dubbelklickar på en rad i det fönstret så utförs det kommandot en gång till. Du kan också göra mer avancerade operationer genom att klicka en gång på en rad och sedan högerklicka i historiefönstret. Du får då upp en meny som ser ut ungefär som till höger. Vi återkommer till de flesta av alternativen, det vi skall använda nu är Copy. Klicka på ett kommando i historiefönstret, högerklicka och välj Copy. Gå därefter till kommandofönstret och högerklicka. I den meny som då dyker upp kan du välja Paste (klistra in). När du gjort det har du flyttat kommandot från historiefönstret till kommandofönstret. Väl där kan du ändra i det gamla kommandot och sedan utföra det nya modifierade kommandot genom att trycka på return. Det kan tyckas vara ett omständigt sätt att skriva in ett kommando, men om vi minns Y = ((3.5*(a+b)-c)+sin(phi-2.75*D)/epsil**2+(455-abba**3)/(cos(4+pi)-2.75) så inser vi att det kan vara mycket enklare och snabbare (och mindre känsligt för nya fel) att kopiera in kommandot från historiefönstret och ändra än att skriva in kommandot från scratch. 2.4 M-filer Det absolut smidigaste sättet att använda MATLAB är att konsekvent jobba med så kallade m-filer. I en m-fil kan man skriva in alla kommandon man kan skriva i MATLABs kommandofönster och spara dessa till hårddisken. När man sedan skriver namnet på m-filen i MATLABs kommandofönster så utförs alla kommandon som står i filen och resultatet visas i MATLABs kommandofönster. Genom att utnyttja m-filer kan vi spara en otrolig mängd arbete. Vi kan till exempel skriva in alla rådata från en laboration i en m-fil, sedan steg för steg skriva in alla operationer för att göra mätvärdesbehandling på laborationen. Därefter skriver vi in de kommandon som krävs för att producera de grafer vi skall redovisa i laborationsredogörelsen. Vi kan när som helst i den här processen ta paus, spara filen till disk och fortsätta vid ett senare tillfälle. Det är också enkelt att ändra ett enstaka kommando om man har fått någon formel om bakfoten, eller om man vill ändra någon detalj i ett histogram. Det bästa man kan göra som student är att bygga upp ett förråd av små m-filer som gör avgränsade uppgifter, till exempel en anpassning till en andragradskurva eller en beräkning av chi-kvadrat. Eftersom en m-fil kan kalla en m-fil kan filer som utför klart definierade uppgifter enkelt återanvändas när liknande problem skall lösas. 2.4.1 Editorn för M-filer MATLAB har ett särskilt fönster som används för att skapa och ändra m-filer. Du kan hitta fullständig information om MATLABs editor vid?/matlab/desktop Tools and Development Environment/ Editing and Debugging M-files, här ger vi den information som behövs för att komma igång och jobba.

16 KAPITEL 2. ATT KOMMA IGÅNG Det finns många sätt att starta verktyget: Om vi klickar på ikonen som visar ett tomt vitt pappersark längst till vänster i verktygslisten öppnas editeringsfönstret och vi kan börja skriva in våra kommandon. Startar vi editorn på det här sättet finns inget filnamn definierat för den nya m-filen, så när vi sparar filen kommer MATLAB att begära att vi anger ett namn. I menyn File klickar vi på New och sedan M-file för att uppnå samma resultat. I kommandofönstret skriver man Edit för att få upp ett fönster och en ny fil. Alternativt kan man i kommandofönstret skriva Edit filnamn. Om det existerar en fil med det namnet någonstans inom MATLABs sökväg så öppnas denna. Om inte så presenterar MATLAB en dialogruta där vi får svara på om vi vill skapa en ny fil med det namnet. Svarar vi nej så öppnas inget editor-fönster. Låt oss börja med att säga hej, öppna editorn för m-filer på något av ovanstående sätt. Skriv sedan in raden: disp ( Hello World ) 2.4.2 Att spara en M-fil på disk Hela poängen med att skapa en m-fil är ju att den skall sparas på hårddisk. För att göra det går vi in i File menyn och väljer Save. Om filen vi vill spara är nyskapad och inte har något namn så kommer MATLAB att öppna en dialogruta där vi kan ange filens namn och i vilken katalog den skall ligga. Har vi ändrat i en redan existerande fil så sparas den ändrade versionen med samma namn som den ursprungliga. Observera att det här innebär att den ursprungliga versionen är förlorad för gott. Det kan därför vara klokt, särskilt om man vill ändra i en komplicerad redan fungerande fil, att istället för att spara den med samma namn som tidigare spara en kopia med ett annat namn så att den ursprungliga, oförändrade versionen av filen finns kvar på hårddisken. Detta gör man genom att istället för att ange Save väljer Save as... under File -menyn. Vi får även i det här fallet upp dialogrutan där vi kan välja namn och katalog för filen. När man väl har introducerat alla ändringar och fått dem att fungera som man önskar kan man slänga den gamla filen och döpa om den nya till det gamla namnet om man så önskar. En genväg för att spara filen är att klicka på diskett-symbolen i verktygsraden. För en ny fil får vi då upp dialogrutan och kan välja namn och katalog, en gammal fil sparas med det gamla namnet. Ta nu och spara din första m-fil genom någon av metoderna ovan. Lägg filen i en lämplig katalog (kanske MATLAB/pass2?) på din afs-area. Ge filen namnet hej. Du behöver inte själv lägga till ändelsen.m det sköter MATLAB själv. 2.4.3 Läsa in och köra en m-fil Enklaste sättet att köra en m-fil är att bara skriva dess namn i kommandofönstret. Om filen finns antingen i den aktuella katalogen eller i någon katalog i sökvägen 2 (mer om sökväg 2 Om det finns fler filer med samma namn i olika kataloger som finns i sökvägen så väljer Matlab den som kommer först. Om resultatet inte blir vad man tänkt sig kan det bero på att det finns en namne till den fil vi egentligen vill köra, och att den hamnar före i kön.

2.4. M-FILER 17 kommer i avsnitt?? så kommer de kommandon som finns i filen att utföras. Prova: hej Hello World Du kan också köra en m-fil direkt från editor-fönstret genom att antingen klicka på symbolen till höger eller också gå till menyn Debug och välja Run. Om det finns ändringar i editor-fönstret som inte är sparade till hårddisk så sparas först filen till disk innan kommandona utförs. När man håller på och jobbar med en komplicerad m-fil som till exempel när man vill få ett visst utseende på en graf och håller på och provar sig fram så är det bekvämt att köra filen från editor-fönstret på det här sättet. 2.4.4 Kommentarer I princip är det ingen skillnad på hur MATLAB hanterar kommandon som skrivs in i kommandofönstret och kommandon som läses in via en m-fil. Det finns ändå ett antal kommandon som man knappast använder i kommandofönstret men som spelar en stor roll när vi jobbar med m-filer. Viktigast av dessa är ett av de allra viktigaste MATLAB kommandot - kommentarer. Kommentarer inleds med ett procenttecken % och följs av godtycklig text. När MATLAB utför kommandon ignorerar programmet procenttecknet och vad som följer efter det. Syftet med kommentarer är att det skall göra det enklare att titta i en m-fil och kunna följa med vad programmet gör, och hur. Detta är användbart både om man använder program skrivna av andra, men också när man ett år senare (kom ihåg att ni skall spara alla era gamla m-filer!) återvänder till filer man själv har skrivit, det kan vara nog så svårt att minnas vad man själv tänkt och gjort! Kommentarer används 1. som en varudeklaration i början av ett program (i det här sammanhanget är en m-fil att betrakta som ett program) för att beskriva vad programmet gör, vad det heter, vem som har skrivit det och när, samt om programmet behöver någon speciell typ av indata eller levererar någon speciell typ av ut-data. 2. för att beskriva vad de viktigaste variablerna står för 3. vad de olika programstegen utför Det går nästan alltid att med ett snabbt ögonkast skilja ett program skrivet av en van programmerare från ett skrivet av en nybörjare, även om man inte begriper ett skvatt av vad programmet gör. Eftersom en av skillnaderna ofta är mängden kommentarer - en duktig programmerare skriver mycket kommentarer - så kan man ibland frestas att skriva en kommentar även för triviala steg, vilket inte underlättar läsningen. Exakt hur mycket och vilka avsnitt som skall kommenteras kan vara en smaksak, men ett exempel som författaren tycker är rimligt kan vara: