Tall, vektorer og matriser Kompendium: MATLAB intro Tallformat Komplekse tall Matriser, vektorer og skalarer BoP(oS) modul 1 del 2-1
Oversikt Tallformat Matriser og vektorer Begreper Bruksområder Typer Inntasting Indeksering Kommandoer relatert til variabler 2
Tallformat MATLAB har en rekker datatyper for tall Heltall og flyttall Internt representeres alt i totallsystemet Standardformatet er double precision (MATLAB_intro s. 9) Visning Uten desimaler vises tallet som heltall Viser standard 4 desimaler Bruker tierpotenser (E-form) ved behov Visningsformat kan endres >>help format Full nøyaktighet brukes i beregninger Inntasting Normalform eller E-form 3
Datastrukturer og matriser Variabler med en verdi er greit i mange tilfeller Blir tungvint når vi skal behandle serier med tall Matriser er den grunnleggende datastrukturen i MATLAB Ikke bare til matriseregning Matrise = Tabell < Begrepene kommer til å bli brukt om hverandre Flerdimensjonal? Et antall rader og kolonner Hver han være en eller flere Lar oss manipulere mange verdier på en enkel måte Eksempel: >> sin(x) Beregner sinus av alle verdier i x, en eller flere 4
Vektor og skalar Vektor, et spesialtilfelle av en matrise Vektor = endimensjonal tabell (Array på engelsk) Ikke forveksles med vektor i geometri og fysikk Begrepet tabell brukes også her Svært anvendelig og mye brukt x-verdier. funksjonsverdier Enkel bruk med bare en dimensjon Et enkelt-tall er en spesialisering av en vektor - og dermed også av en matrise MATLAB ser derfor på et enkelt tall som en en-ganger-en matrise Kalles en skalar 5
Matriser og vektorer Mange bruksområder Løsning av likninger Polynomer Funksjonsverdier for plotting (grafer) To typer vektorer (retning) Radvektorer og kolonnevektorer Ikke angitt retning > vanligvis radvektor Viktig ved visse regneoperasjoner 6
Inntasting Oppgir elementene i vektor/matrise i hakeparenteser [ ] Radvektor: >> a = [10 20 30 40 50 60 70 80 90 100]; Skiller elementene med mellomrom Her er a en variabel som holder på hele vektoren Kolonnevektor >> b = [12; 8; 23; -17; 7; -6; 14; 28; 2; -25]; Skiller elementene med ; (mellomrom er bare til pynt) Matrise >> C = [1 2 3; 4 5 6; 7 8 9]; Mellomrom mellom elementene på samme rad Semikolon gir ny rad 7
Enkeltverdier i vektorer Finner enkeltverdi ved hjelp av en indeksverdi NB! MATLAB indekserer fra 1 Ulikt alle andre programmeringsspråk som indekserer fra 0 Bruker navn, parentes og tallverdi som angir hvilket element >> a(3) %Gir det tredje elementet altså verdien 30 ans = 30 Fungerer like bra på kolonnevektor Prøv >> b(5) Indeksverdi utenfor området gir feilmelding null, negativ eller større enn antall >> b(12) 8
Indeksering og tilordning Elementet som hentes ut kan tilordnes til en variabel >> d = a(4); Indeks kan også brukes for å endre et enkeltelement Står da på venstresiden av likhetstegnet prøv >> a(7) = 15 % Uten semikolon Er det bare ett element eller hele vektoren som vises på skjermen? Hva om vi bruker indeks større enn antall elementer i tilordning? prøv >> a(14) = 140 9
En indeks kan selv være en variabel Prøv kommandoene under: Forutsetter at de tidligere eksemplene i denne presentasjonen er utført Stemmer svarene med det du forventer? >> i = 9; >> a(i) = a(i - 1) >> i = b(i); >> a(i) = 200 Man kan gjøre regneoperasjoner på en variabel når den skal brukes Variabel kan brukes på begge sider likhetstegnet. Gammel verdi brukes på høyre side 10
Indeksering i matrise For matrise må vi bruke to tall >>C(2, 3) ans = 6 Første tall angir rad, andre tall angir kolonne Prøve følgende og vurder resultatet: >> C(3,2) >> C(2) >> i = 2; j = 3; >> C(i,j) = 0 >> C(i,j+2) = 6 11
Oppsummering flere tegn Tegn Forklaring [ ] Brukes til å angi en vektor eller matrise. [1 2 3] Tallene adskilt med mellomrom gir radvektor [1; 2; 3] Tallene adskilt med semikolon gir kolonnevektor navn(x) Vektorindeksering. X angir hvilket enkelttall i lista man vil hente ut. 12
Kommandoer relatert til variabler Kommando who whos clear Forklaring Lister opp alle variabler som er i bruk Som who, men gir mer informasjon om hver variabel Sletter alle variabler som er lagt i minnet Prøv who og whos clear bruker du når du vil begynne med blanke ark 13